标签:__ 25 fs end Python lock work start 多线程
多进程的几种方法
Lock:可以避免访问资源时的冲突
Pool:可以提供指定数量的进程
Queue:多进程安全的队列,实现多进程之间的数据传递
Pipe:实现管道模式下的消息发送与接收
Lock(加锁)
#加锁 ''' 输出为 work_1 start work_2 start work_1 end work_2 end ''' import time import multiprocessing def work_1(f,n,lock): print('work_1 start') lock.acquire() for i in range(n): with open(f,'a') as fs: fs.write('i love pyhton \n') time.sleep(1) print('work_1 end') lock.release() def work_2(f,n,lock): print('work_2 start') lock.acquire() for i in range(n): with open(f,'a') as fs: fs.write('come on baby \n') time.sleep(1) print('work_2 end') lock.release() if __name__ == '__main__': lock=multiprocessing.Lock() p1 = multiprocessing.Process(target=work_1,args = ('file.txt',3,lock)) p2 = multiprocessing.Process(target=work_2, args=('file.txt', 1,lock)) p1.start() p2.start()
标签:__,25,fs,end,Python,lock,work,start,多线程 来源: https://www.cnblogs.com/lanzhijie/p/12181945.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。