python 多執行緒 exit 函式 錯誤示範

2021-09-25 03:55:08 字數 1707 閱讀 1795

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,如果是多程序則去掉...