본문 바로가기
반응형

multiprocessing8

PySide6 GUI에서 self.close() 후에도 백그라운드 프로세스가 종료되지 않는 이유와 해결 방법 PySide6 GUI에서 self.close() 후에도 백그라운드 프로세스가 종료되지 않는 이유와 해결 방법PySide6 기반 GUI 애플리케이션을 개발하다 보면, self.close()나 창 우측 상단의 [X] 버튼을 눌러 UI를 종료했음에도 불구하고 프로세스가 백그라운드에 남아있는 현상을 경험할 수 있습니다. 심지어 PyInstaller로 패키징한 후 실행하면 종료된 줄 알았던 앱이 작업 관리자에 여전히 남아 있는 경우도 있죠. 이 글에서는 해당 문제의 원인과 확실한 해결 방법을 상세히 정리합니다.✅ 문제 요약 증상 설명 UI 창은 닫혔지만MainWindow는 닫혔지만, 내부에서 실행 중인 프로세스는 계속 동작작업 관리자에 프로세스가 남아 있음python.exe 또는 빌드된 .exe가 종료되지 않음.. 2025. 6. 16.
PyInstaller로 빌드한 PySide6 앱에서 multiprocessing.Process가 동작하지 않을 때 해결 방법 PyInstaller로 빌드한 PySide6 앱에서 multiprocessing.Process가 동작하지 않을 때 해결 방법Python으로 GUI 앱을 만들 때 PySide6와 multiprocessing을 함께 사용하면, 메인 UI의 응답성을 유지하면서 백그라운드 작업을 처리할 수 있습니다. 그런데 PyInstaller로 이 앱을 EXE로 빌드하고 실행하면, 코드상에서는 잘 되던 multiprocessing.Process가 작동하지 않는 경우가 있습니다. 이 문제의 원인과 해결 방법을 이번 포스팅에서 정리해보겠습니다.문제 상황예를 들어 아래와 같은 코드에서:import multiprocessingdef run(queue, exe_arg_list, open_enable): print("Process.. 2025. 6. 12.
PySide6 GUI 앱에서 multiprocessing.Queue와 Process 안전하게 종료하는 방법 PySide6 GUI 앱에서 multiprocessing.Queue와 Process 안전하게 종료하는 방법PySide6 기반 GUI 프로그램에서 multiprocessing.Process와 multiprocessing.Queue를 사용하는 경우, UI를 닫더라도 백그라운드 프로세스가 종료되지 않고 리소스를 점유하는 현상이 발생할 수 있습니다. 특히 PyInstaller로 EXE를 만들었을 때 더욱 민감하게 반응합니다. 이 글에서는 Queue와 Process를 정상 종료하는 방법과, 종료 이후 terminate()와 close()를 다시 호출하면 어떻게 되는지 실전 예제와 함께 설명합니다.✅ 문제 현상self.close() 또는 MainWindow.close() 호출 시 UI는 종료되지만,백그라운드에서 실.. 2025. 6. 11.
Python multiprocessing - .exe 변환 후 무한 재귀 실행 문제 해결법! Python multiprocessing - .exe 변환 후 무한 재귀 실행 문제 해결법!Python의 multiprocessing을 사용하여 멀티 프로세스를 실행할 때, Windows 환경에서 .exe로 변환하면 자식 프로세스가 무한 루프에 빠지는 문제가 발생할 수 있습니다. 이 문제는 Windows의 spawn 방식과 관련이 있으며, 이를 해결하지 않으면 프로그램이 무한히 실행되면서 CPU를 과도하게 사용하거나 정상 종료되지 않는 문제가 생깁니다. 이번 포스팅에서는 이 문제의 원인과 해결 방법을 설명하고, 실제 예제 코드와 올바른 실행 방법을 제공합니다. 📖 1. multiprocessing의 .exe 변환 후 무한 실행 문제란?Python에서 multiprocessing을 사용할 때, Windo.. 2025. 3. 1.
multiprocessing.freeze_support() 완벽 가이드 - 동작 원리, 필요성, 예제 코드까지! multiprocessing.freeze_support() 완벽 가이드 - 동작 원리, 필요성, 예제 코드까지!Python에서 multiprocessing 모듈을 사용할 때 Windows 환경에서는 freeze_support()를 호출해야 하는 경우가 있습니다. 특히, PyInstaller로 .exe 파일을 빌드할 때 필수적으로 사용해야 합니다. 이 글에서는 multiprocessing.freeze_support()의 동작 방식과 내부 적용 순서를 단계별로 설명하고, 왜 필요한지, 언제 사용해야 하는지, 그리고 장단점을 정리해 보겠습니다. 📖 1. multiprocessing.freeze_support()란?multiprocessing.freeze_support()는 Windows 환경에서 multip.. 2025. 3. 1.
파이썬에서 멀티태스킹과 멀티스레드 사용법 파이썬에서 멀티태스킹과 멀티스레드 사용법컴퓨터에서 여러 작업을 동시에 실행하는 것을 병렬 처리라고 합니다. 이를 구현하는 방식에는 멀티태스킹(Multitasking) 과 멀티스레딩(Multithreading) 이 있습니다. 이 글에서는 멀티태스킹과 멀티스레드의 개념을 설명하고, 각각의 특징과 장단점을 비교합니다. 또한, 실제 코드 예제를 통해 어떻게 활용하는지 배워보겠습니다. 추가로 multiprocessing과 threading 모듈의 사용법 및 프로젝트에서 효율적으로 활용하는 방법을 설명합니다.1. 멀티태스킹 vs 멀티스레드📌 멀티태스킹이란?멀티태스킹은 여러 개의 프로세스를 실행하는 방식입니다. 각 프로세스는 독립적인 메모리를 가지며, CPU 스케줄링에 의해 번갈아 가며 실행됩니다.📌 멀티스레드란.. 2025. 2. 28.
반응형