process에서 메시지 박스를 보여주는 pyQt5 예제입니다. 2024. 4. 11 최초작성 프로세스에서 UI를 사용할 수 없기 때문에 필요시 메인 윈도우에 요청하여 UI처리를 해야 합니다. 여기에서는 프로세스에서 큐를 사용하여 전달한 메시지를 메인 윈도우에서 메시지 박스에 보여줍니다. 실행 후, 프로세스 시작 버튼을 클릭합니다. 이후 중복 클릭을 방지하기 위해 프로세스 시작 버튼은 비활성화 됩니다. 프로세스에서 전달한 메시지를 메인 윈도우가 메시지 박스에 보여줍니다. 프로세스가 보내는 메시지 타입에는 아래 스크린샷에 보이는 3가지가 있고 랜덤으로 보내도록 했습니다. 프로그램 종료를 물어보는 메시지 박스에서 Yes를 선택하기 전까지 메시지 박스를 랜덤으로 보여주게 됩니다. No를 누르면 큐에서 다음 메..
Python에서 Thread/Process를 강제로 종료시키는 방법을 다루고 있습니다. 일반적으로 스레드나 프로세스를 갑자기 종료하는 것은 좋은 방법이 아닙니다. 왜냐하면 스레드/프로세스가 자원을 사용하던 중에 갑자기 종료되면 자원 해제 처리가 제대로 이루어질 수 없기 때문입니다. 스레드/프로세스를 강제 종료해도 자원 해제나 기타 다른 문제가 생길 가능성이 없다면 사용해볼 여지가 있습니다. 본 포스트는 참고한 글을 기반으로 작성되었지만 대부분의 코드와 글이 원문과 차이가 있습니다. 원문에 있던 예외와 trace 관련 방법은 제외했습니다. 중지 플래그 - 전역변수 중지 플래그 - 이벤트 객체 Using traces to kill threads : 스레드 대신 프로세스 사용 데몬(daemon) 참고 2024..
Process, Thread, Main 함수의 로그를 파일로 저장하는 logging Python 예제 코드입니다. 2022. 12. 25 최초작성 import logging import logging.handlers import multiprocessing import threading def listener_configurer(): root = logging.getLogger() h = logging.handlers.RotatingFileHandler('log_test.txt', 'w', 0, 0) f = logging.Formatter('%(asctime)s %(processName)-10s %(name)s %(levelname)-8s %(message)s') h.setFormatter(f) root..
파이썬에서 실행중인 프로세스 이름과 pid를 출력하는 예제 코드입니다. 2022. 8. 6. 최초작성 from multiprocessing import Process def count(num): while num > 0: num = num - 1 print(num) print('process exit') if __name__ == '__main__': # Process를 사용하려면 꼭 적어줘야 합니다. t = Process(target=count, args=(10,)) t.start() # 실행중인 프로세스 리스트를 출력합니다. import psutil current_process = psutil.Process() children = current_process.children(recursive=True..
파이썬에서 실행중인 프로세스 이름과 pid를 출력하는 예제 코드입니다. 2022. 8. 6. 최초작성 from multiprocessing import Process def count(num): while num > 0: num = num - 1 print(num) print('process exit') if __name__ == '__main__': # Process를 사용하려면 꼭 적어줘야 합니다. t = Process(target=count, args=(10,)) t.start() # 실행중인 프로세스 리스트를 출력합니다. import psutil current_process = psutil.Process() children = current_process.children(recursive=True..