您的位置:首页 > 编程语言 > Python开发

Python多线程和线程锁测试

2016-11-03 22:15 330 查看

测试1

代码:

#coding=utf-8
import threading
from time import sleep

threadLock = threading.Lock()

def handle1(name,count):

getlock=threadLock.acquire()
print str(name)+"获取锁成功?"+str(getlock)

for i in range(count):
print str(name)+"处理了"+str(i+1)+"次事情"
sleep(1)

threadLock.release()

def handle2(name):

for i in range(10):
print str(name)+"处理了"+str(i+1)+"次事情"
sleep(1)

threading.Thread(target=handle1,args=["张三",5]).start()
threading.Thread(target=handle2,args=('李四',)).start()

print "main thread end"


打印:

张三获取锁成功?True
张三处理了1次事情
main thread end
李四处理了1次事情
张三处理了2次事情
李四处理了2次事情
李四处理了3次事情
张三处理了3次事情
李四处理了4次事情
张三处理了4次事情
李四处理了5次事情
张三处理了5次事情
李四处理了6次事情
李四处理了7次事情
李四处理了8次事情
李四处理了9次事情
李四处理了10次事情


测试2

代码:

#coding=utf-8
import threading
from time import sleep

threadLock = threading.Lock()

def handle1(name,count):

getlock=threadLock.acquire()
print str(name)+"获取锁成功?"+str(getlock)

for i in range(count):
print str(name)+"处理了"+str(i+1)+"次事情"
sleep(1)

threadLock.release()

def handle2(name):

getlock=threadLock.acquire()
print  str(name)+"获取锁成功?:"+str(getlock)

for i in range(10):
print str(name)+"处理了"+str(i+1)+"次事情"
sleep(1)

threadLock.release()

threading.Thread(target=handle1,args=["张三",5]).start()
threading.Thread(target=handle2,args=('李四',)).start()

print "\n main thread end"


打印:

张三获取锁成功?True
张三处理了1次事情
main thread end
张三处理了2次事情
张三处理了3次事情
张三处理了4次事情
张三处理了5次事情
李四获取锁成功?:True
李四处理了1次事情
李四处理了2次事情
李四处理了3次事情
李四处理了4次事情
李四处理了5次事情
李四处理了6次事情
李四处理了7次事情
李四处理了8次事情
李四处理了9次事情
李四处理了10次事情
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: