守护线程
1. 线程可以利用多核,但是在cpython中 有GIL全局解释器锁,所以不能利用多核
2.线程enumerate函数 导入之后会和内置函数enumerate重名,需要做特殊的处理
1. 起别名
from threading import enumerate as en
2.导入
import threading threading.enumerate()
3.守护线程和守护进程有什么区别,为什么?
守护进程 会随着主进程的代码结束而结束
如果主进程代码结束后还有其他子进程在运行,守护进程不守护(daemon这个进程直接结束)
守护线程 会随着主线程代码结束而结束
如果主线程代码结束后还有其他子线程在运行,守护线程会继续守护(daemon守护的这个线程会继续执行,等其他子线程结束)
守护进程 和守护线程原理不同
守护进程需要主进程来回收资源
守护线程是随着进程的结束而结束的
其他子线程 -> 主线程结束 -> 主进程结束 ->整个进程中所有资源都被回收 -->守护线程也被回收
from threading import Thread import time def son1(): while 1: print('in son1') time.sleep(1) def son2(): for i in range(4): print('in son2') time.sleep(1) t1 = Thread(target=son1) t1.daemon =True t1.start() Thread(target=son2).start() print('代码结束了')

浙公网安备 33010602011771号