守护线程

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('代码结束了')

 

posted @ 2021-02-04 21:59  苦行僧冬*婷  阅读(44)  评论(0)    收藏  举报