线程也可以使用计算机的多核资源,也是多任务编程方式之一
线程又称轻量级的进程,在并发上喝进程相同但是在创建时消耗资源较少
线程特点:
- 一个进程可以包含多个线程,这多个线程共享进程的资源;
- 多个线程因为共享进程的资源所以在通信上采用全局变量的方法;
多进程和多线程的区别和联系:
1. 多进程和多线程都是多任务编程方式,都可以使用计算机多核;
2. 进程的创建要比线程消耗更多的资源;
3. 进程空间独立数据更安全,有专门的进程间通信方式进行交互;
4. 一个进程包含多个线程,所以线程共享进程资源,没有专门的通信方法,依赖全局变量进行通信,往往需要使用同步互斥机制,逻辑需要考虑更多;
5. 进程线程都有自己特有的资源,多个关联任务的时候使用多线程资源消耗更少,如果是多个无关人物也不适用于全都使用线程。
创建线程
import threading #创建线程函数
threading.Tread()#创建线程
参数:target 线程函数
args以元组方式给线程函数传参
kwargs以字典方式给线程函数传参
name 线程名称
返回值:一个线程对象
t.start()#启动线程t
t.is_alive()#查看一个线程的状态
t.name #查看线程的名称
t.join #阻塞等待回收线程
daemon 属性:
设置 改属性默认为False 主线程执行完毕不会影响到其他线程的执行;
如果设置为True 则主线程执行完毕其他线程也终止执行;
t.setDeamon(True)
或者:
t.daemon=True
获取daemon的属性值:
t.isdaemon()