#encoding:UTF-8#方法一:importthreadingimporttimedata=0lock=threading.Lock()deffunc():globaldataprintthreading.currentThread().getName()#acquireiflock.acquire():printthre...
# encoding: UTF-8
#方法一:
import threading
import time
data=0
lock=threading.Lock()
def func():
global data
print threading.currentThread().getName()
#acquire
if lock.acquire():
print threading.currentThread().getName()
data+=1
time.sleep(1)
print threading.currentThread().getName()
lock.release()
t1=threading.Thread(target=func)
t2=threading.Thread(target=func)
t3=threading.Thread(target=func)
t1.start()
t2.start()
t3.start()
t1.join()
t2.join()
t3.join()
----------------------------------------------------------------
#方法二:
import threading
import time
data=0
lock=threading.Lock()
def func():
global data
print threading.currentThread().getName()
#acquire
if lock.acquire():
print threading.currentThread().getName()
data+=1
time.sleep(1)
print threading.currentThread().getName()
lock.release()
threads=[]
t1=threading.Thread(target=func)
t2=threading.Thread(target=func)
t3=threading.Thread(target=func)
threads.append(t1)
threads.append(t2)
threads.append(t3)
for d in threads:
d.start()
d.join()
问题来呢?
1、2段代码分别执行,不在同一个脚本中,
2、显示方式有一定的不同之处,是什么原因呢?能麻烦大神解释下吗?(其中一段,第一行显示了多段打印结果)
展开