1、进程为线程的入口,线程不可独立执行,必须依附在线程上,线程为cpu调度的最小单位
2、线程分为内核线程和用户线程,内核线程由操作系统创建和销毁,用户线程为在用户进程中实现的线程,不需要内核线程的支持
3、每个线程有自己的cpu寄存器,保存了上一次运行线程时候的寄存器上下文
4、线程共享一个进程的内存
5、线程的状态
新状态:线程对象创建,未start
可运行状态:在start开始的时候,首先进入可运行状态。在线程运行之后或者从阻塞、等待或睡眠状态回来后,也返回到可运行状态。
运行状态:线程调度从可运行线程池中选一个作为当前线程,这个时候的状态为运行状态。是线程进入运行状态的唯一方式。
等待/阻塞/睡眠状态:有事件发生后,可能返回到可运行状态
死亡状态:run()方法完成时就认为线程死去,线程对象可能还在,但是线程已经不是一个单独可执行的线程。线程死亡后不可复生,在死亡线程上调用start()方法会报错
线程同步方式:
threadLock = threading.Lock()
threadLock.acquire() 获得锁之后才往下执行
threadLock.release()释放对锁的占用
原文地址:https://www.cnblogs.com/EmptyRabbit/p/11324194.html