Czytanie http://bugs.python.org/msg160297 widzę prosty skrypt napisany przez Stephen White, który pokazuje, w jaki sposób błędy pyton gwintowania się z tym wyjątkiemZrozum pyton wątków błąd
Exception AttributeError: AttributeError("'_DummyThread' object has no attribute '_Thread__block'",) in <module 'threading'
Biorąc kod źródłowy Stephena White'a (http: //bugs.python .org/file25511/bad-thread.py)
import os
import thread
import threading
import time
def t():
threading.currentThread() # Populate threading._active with a DummyThread
time.sleep(3)
thread.start_new_thread(t,())
time.sleep(1)
pid = os.fork()
if pid == 0:
os._exit(0)
os.waitpid(pid, 0)
jak chcielibyśmy ponownie napisać to tak, że błąd ten został rozwiązany?
Wydaje mi się, że możesz przepisać to wszystko jako 'time.sleep (3)'. Sądzę, że powinieneś sprecyzować, co powinny teraz zrobić nowe programy. –
@JanneKarila Program demonstruje tylko błąd w Pythonie, który zobaczysz, jeśli uruchomisz go w Pythonie 2.7. Wniosek dotyczy obejścia błędu bez aktualizacji do wersji Pythona, która ją naprawia. – user4815162342