python multiprocessing lock_python多进程打印字符,加锁(Lock加锁)

先看不加锁的:

#coding=utf-8

from multiprocessing import Process,Lock

import time

def l(num):

#lock.acquire()

#stime.sleep(2)

print "Hello num:%s" %num

#lock.release()

if __name__=='__main__':

lock=Lock()

for num in range(10):

Process(target=l,args=(num,)).start()

结果:可以看到,启动10个进程,异步执行打印函数,打印的很乱

c:\Python27\Scripts>python task_test.py

HHello num:0Hello num:1

ello num:2

Hello num:3

HHello num:4ello num:5

Hello num:6

Hello num:7

Hello num:8

Hello num:9

加锁:

#coding=utf-8

from multiprocessing import Process,Lock

import time

def l(num,lock):

lock.acquire()

#stime.sleep(2)

print "Hello num:%s" %num

lock.release()

if __name__=='__main__':

lock=Lock()

for num in range(10):

Process(target=l,args=(num,lock)).start()

结果:执行打印的进程获得锁,打印后释放锁,之后下一个进程获得锁,所以每次打印都只有一个进程在操作

c:\Python27\Scripts>python task_test.py

Hello num:0

Hello num:1

Hello num:3

Hello num:2

Hello num:6

Hello num:5

Hello num:4

Hello num:7

Hello num:8

Hello num:9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值