bprin 리부팅을 실행할 때 심각한 쓰레드 에러
Closed this issue · 5 comments
clomia commented
Fatal Python error: _enter_buffered_busy: could not acquire lock for <_io.BufferedWriter name='<stdout>'> at interpreter shutdown, possibly due to daemon threads
Python runtime state: finalizing (tstate=000001E035193960)
Current thread 0x00003e00 (most recent call first):
<no Python frame>
clomia commented
연산 제공 연결이 끊기면 이 문제가 발생한다
clomia commented
그것도 아닌거 같다. 또한 일찍 종료했을때 문제가 발생한다
JinyoungLee115 commented
저도 비슷한 문제 겪고있는데 해결방법 공유해주실 수 있을까요?
clomia commented
저도 비슷한 문제 겪고있는데 해결방법 공유해주실 수 있을까요?
@JinyoungLee115
해결법
위 에러의 경우 0x00003e00
이라는 쓰레드를 deamon=False 해주면 해결됩니다
원인
이미 종료된 쓰레드에서 코드를 실행하려 하면 위와 같은 에러가 발생합니다.
작성했던 코드에 있던 구체적인 원인
A쓰레드가 B쓰레드를 생성합니다. 근데 A쓰레드가 demon=True여서 B쓰레드를 생성한 후 강제종료됩니다.
A쓰레드는 이미 강제 종료 되었는데 A쓰레드가 B쓰레드를 조작하기 위해 코드를 실행하려 할 때 위와 같은 에러가 발생했습니다
Tip
--> 종료된 데몬쓰레드가 실행하는 코드가 있는지 확인해보세요 <--
쓰레드에 name 속성으로 이름을 지정하지 않으면 위와 같이 0x00003e00
이런식으로 이름이 지정되요
디버깅을 위해서 쓰레드에 name을 지정해주시는게 좋아요