摘要:
Semaphore(信号量)互斥锁 同时只允许一个线程更改数据,而Semaphore是同时允许一定数量的线程更改数据 ,比如学校门口的小旅馆有5间房,那最多只允许5对小情侣进去啪,后面的人只能等里面有人出来了才能再进去。示例import threading, timedef run(n): semaphore.acquire() #信号量获取,一次5个 time.sleep(1)... 阅读全文
摘要:
线程锁(Mutex)互斥锁以上演示的是GIL锁,GIL锁只能保证同一时刻,CPU上只有一条线程在运行,但不能保证同一时刻只有一条线程在修改数据,要想实现这个效果,我们要加上另一把锁,线程锁。示例如下:import threadingimport timestart_time = time.time()def run(n): lock.acquire() #获取线程锁对象 glob... 阅读全文
摘要:
进程与线程介绍线程是操作系统能够运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。从技术性上来说,一段上下文(就是一个线程)由若干CPU寄存器的值组成,进程与线程不同,一条线程是一段指令上下文。一个进程是一堆与计算有关的资源集合。一个进程可以有一条或多条线程。注意:与进程有关的资源集合包... 阅读全文