python3의 multiprocess
에서 __del__
메서드를 호출 할 수 없습니다.__del__ 메서드가 호출되지 않는 이유
순환 참조에 대한 다른 문제를 읽었지만 multiprocess
에서 상황을 찾을 수 없습니다.
이 foo
직접 호출 될 때 foo
에, __del__
가 호출됩니다 순환 참조는하지만, multiprocess
에 __del__
가 호출되지 않습니다.
import multiprocessing
import weakref
class Foo():
def __init__(self):
self.b = []
def __del__(self):
print ('del')
def foo():
print ('call foo')
f = Foo()
a = [f]
# a = [weakref.ref(f)]
f.b.append(a)
# call foo in other process
p = multiprocessing.Process(target=foo)
p.start()
p.join()
# call foo
foo()
출력 :
전화 foo는
전화 foo는
델 __del__
이 p
에서 호출되지 않는 이유
?
'약점'은 무엇이라고 생각하십니까? 코드에서 언급하고이 질문과 관련되어 있지만 관련성이 있다고 생각하는 이유는 밝히지 않았습니다. –