Bu aptalca bir soru olabilir, ancak Python hakkındaki bazı varsayımlarımı test ediyorum ve aşağıdaki kod parçacığının iş parçacığında çağrıldığında neden çıkmayacağı, ancak ana iş parçacığında çağrıldığında çıkacağı konusunda kafam karıştı.
import sys, time
from threading import Thread
def testexit():
time.sleep(5)
sys.exit()
print "post thread exit"
t = Thread(target = testexit)
t.start()
t.join()
print "pre main exit, post thread exit"
sys.exit()
print "post main exit"
Sys.exit () için dokümanlar, çağrının Python'dan çıkması gerektiğini belirtir. Bu programın çıktısından "post thread exit" in asla yazdırılmadığını, ancak thread çağrıları çıktıktan sonra bile main thread devam ettiğini görebiliyorum.
Her iş parçacığı için yorumlayıcının ayrı bir örneği mi oluşturuluyor ve exit () çağrısı bu ayrı örnekten çıkıyor mu? Öyleyse, iş parçacığı uygulaması paylaşılan kaynaklara erişimi nasıl yönetiyor? Ya iş parçacığından programdan çıkmak isteseydim (aslında istediğimden değil, ama sadece anlayabilmek için)?