ref
接受几个设定:
进程是一家almost密不透风的公司,缅甸KK园区
线程里面工作的…人
进程**[园区]**内公共资源对于进程来说,可以共享.
别的园区[进程],一般不能和自己的园区共享人员资源,除非…
好的,现在再接受设定:
- 单个CPU在任一时刻只能执行单个线程,只有多核CPU还能真正做到多个线程同时运行
- 一个进程包含多个线程,这些线程可以分布在多个CPU上
- 多核CPU同时运行的线程可以属于单个进程或不同进程
所以,在大多数编程语言中因为切换消耗的资源更少,多线程比多进程效率更高
也就是说,如果我是多核的,一个进程是可以同时允许多个线程一起执行的.
但是python呢?
不行
有个GIL锁,保证数据安全,它规定了:
在一个进程中每次只能有一个线程在运行
那线程之间如何协同共同的资源?
线程同步
同步表示一种协同办事
同步的实现方式有很多种:
- 使用锁的线程同步
- 使用Rlock的线程同步
- 使用信号量的线程同步
- 使用条件的线程同步
(1)
(2)上图;wait放锁,notify通知大家竞价
5.使用事件的线程同步
6.使用屏障的线程同步
7.使用队列的线程同步
ref