a哪里n估计Python之路PythonThread,第四篇,进程4

python3  进程4

 进程间同步互斥方法:

from multiprocessing import Lock

创建 进程锁对象

lock = Lock()

lock.acquire()  给临界区上锁

lock.release() 给临界区解锁

说明:1,具体实现上 acquire() 为一个条件阻塞函数;

           2,当有任意一个进程先进行了acquire操作后,其他进程再企图进行acquire操作时就会阻塞,直到lock对象被release后其他进程CIA可以进行下次

                acquire操作;

with lock: 也可以实现加锁,解锁

线程:

1,线程也可以使用计算机的多核资源,也是多任务编程方式之一;

2, 线程又称为轻量级的进程,在并发上和进程相同,但是在创建时销毁资源少;

说明:1,一个进程中可以包含多个线程,这个多个线程共享进程的资源;

            2, 多个线程因为共享进程的资源,所以在通信上往往采用全局变量的方式;

            3,线程也有自己特有的资源,比如TTD指令集等;

多进程和多线程的区别和联系:

1,多进程和多线程都是多任务编程方式,都可以使用计算机多核;

2,进程的创建要比线程消耗更多的资源;

3,进程的空间独立数据更安全,有专门的进程间通信方式进行交互;

4,一个进程包含多个线程,所以线程共享进程资源,没有专门的通信方式,依赖全局变量进行通信。 往往需要使用同步互斥机制,逻辑需要考虑更多;

5,进程线程都有自己特有的资源,多个关联任务的时候使用多线程资源消耗更少; 如果是多个无关联任务也不适用全部都使用线程;

猜你喜欢

转载自www.cnblogs.com/weizitianming/p/9196017.html