学习笔记(19):Python网络编程&并发编程-互斥锁
2023-09-11 14:21:45 时间
立即学习:https://edu.csdn.net/course/play/24458/296430?utm_source=blogtoedu
1.互斥锁:
多进程间的内存是相互隔离的,因此其数据也是相互隔离的,但是所有的进程都共享一个文件操作系统或者说共享文件处理器和打印端。而共享带来的是竞争,竞争带来的是混乱,而解决这种混乱则用到了互斥锁!实际上互斥锁的应用使得多进程按照串行的方式进行运行(串行可以通过互斥锁和join来实现,具体请看下一个学习笔记)
2.优劣势:
互斥锁保证了各进程间数据处理的有序性,避免了上述情况的混乱,但是使得一次只能有一个进程在运行,降低了运行效率。
3.关键知识点:
1)模块:multiprocessing和threading模块
2)Process类和Thread类
3)acquire()——获得锁,release()——释放锁
4.代码:
1)multiprocessing模块(进程锁)
from multiprocessing import Process,Lock
import time
def task(name,lock):
lock.acquire()
print('%s 1'%name)
time.sleep(2)
print('%s 2'%name)
time.sleep(2)
print('%s 3'%name)
lock.release()
if __name__ == '__main__':
lock = Lock()
for i in range(3):
p = Process(target=task, args=('子进程%s'%i,lock))
p.start()
'''
E:\python3\venv2\venv\Scripts\python.exe C:/Users/jinlin/Desktop/python_further_study/并发编程/互斥锁.py
子进程0 1
子进程0 2
子进程0 3
子进程1 1
子进程1 2
子进程1 3
子进程2 1
子进程2 2
子进程2 3
Process finished with exit code 0
'''
2)threading模块(线程锁)
import threading
import time
def task(name,lock):
lock.acquire()
print('%s 1'%name)
time.sleep(2)
print('%s 2'%name)
time.sleep(2)
print('%s 3'%name)
lock.release()
if __name__ == '__main__':
lock = threading.Lock()
for i in range(3):
p = threading.Thread(target=task, args=('子进程%s'%i,lock))
p.start()
注:具体看后面的学习笔记
相关文章
- [Python]架设python虚拟环境以及部署PythonWeb服务
- Python中通过函数对象创建全局变量
- python进程,线程,协程,对比,思考
- [Python] List & Object spread in Python
- 【学习总结】Python-3-逻辑运算符
- 以root权限执行python时候脚本时候报错“ExtractionError: Can't extract file(s) to egg cache”
- 华为OD机试 - 服务中心选址(Java & JS & Python)
- 华为OD机试 - 括号匹配(Java & JS & Python)
- Python编程语言学习:python语言中快速查询python自带模块&函数的用法及其属性方法、如何查询某个函数&关键词的用法、输出一个类或者实例化对象的所有属性和方法名之详细攻略
- Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件
- Python:利用python语言绘制多个子图经典案例、代码实现之详细攻略
- 已解决(Python安装报错)Visit python.org to download an earlier version of Python.
- Python爬虫基础:初探selenium——动态网页&静态网页
- 实践解读丨Python 面向对象三大特征之多态
- 赶在520之前,程序员如何用Python送上最特别的“我爱你”表白
- 工控系统安全 - 工控ISF(Industrial exploit Framework)是一个基于Python的类似msf的工控系统漏洞利用框架
- 【python】Python实现网络爬虫demo实例