python 多執行緒 exit()函式 錯誤示範
以下程式,第乙個執行緒 正常執行,第二個執行緒的 init的時候,呼叫exit()函式。
這樣 主線程退出了。
ctrl c什麼的都不管用了。
只是 修改 第乙個執行緒為乙個孤兒 執行緒。等這個執行緒退出
主線程是在 var.start() 這句話之前 ,就退出了,之後的語句 都不執行的了
程式**:
#!/usr/bin/python
#-*- coding:utf-8 -*-
import sys
import threading
import time
class taskthread(threading.thread):
def __init__(self, cnt):
threading.thread.__init__(self)
self.cnt = cnt
if cnt < 5:
exit(0)
self.running = true
def run(self):
while self.running:
time.sleep(1)
print("cnt = %d\n" % self.cnt)
self.cnt = self.cnt - 1
if self.cnt <= 0:
break
print('task thread exit!\n')
if __name__ == "__main__":
task = taskthread(20)
task.start()
main_alive = true
print('main process runing\n')
var = taskthread(3)
var.start()
print('var going \n')
try:
while main_alive:
time.sleep(1)
print('#\n')
except keyboardinterrupt:
print('ctrl c to exit\n')
task.running = false
print('main process exit\n')
log:
c:\python27\python.exe e:/python/work/thread_t1/thread_exit.py
main process runing
cnt = 20
cnt = 19
cnt = 18
cnt = 17
cnt = 16
cnt = 15
cnt = 14
cnt = 13
cnt = 12
cnt = 11
cnt = 10
cnt = 9
cnt = 8
cnt = 7
cnt = 6
cnt = 5
cnt = 4
cnt = 3
cnt = 2
cnt = 1
task thread exit!
process finished with exit code 0
(稍後補充) 多執行緒 exit 函式
所在標頭檔案 stdlib.h 功 能 關閉所有檔案,終止正在執行的程序。exit 1 表示異常退出.這個1是返回給作業系統的。exit x x不為0 都表示異常退出 exit 0 表示正常退出 exit 的引數會被傳遞給一些作業系統,包括unix,linux,和ms dos,以供其他程式使用。st...
python多執行緒函式 Python多執行緒
python使用多執行緒有兩種方式 函式或者用類來包裝執行緒物件 函式式 呼叫thread模組中的start new thread 函式來產生新執行緒 thread.start new thread function,args kwargs function 執行緒函式 args 執行緒引數,必須是...
python多執行緒 python多執行緒
通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個 下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉...