import _thread
from time import ctime, sleep
loops = [4,2] #将休眠时间先放在这个列表里面备用
def loop(nloop, nsec, lock): #三个参数 nloop:线程编号 nsec:休眠时间 lock线程锁
print("Start loop", nloop ,"at: ",ctime())
sleep(nsec)
print("loop",nloop,'done at: ',ctime())
lock.release() #释放线程的锁
def main():
print("Starting at:",ctime())
locks = [] #创建空列表,通过_thread.allocate_lock()得到锁的对象
nloops = range(len(loops)) #读取loops列表的范围
for i in nloops:
lock = _thread.allocate_lock()
lock.acquire() #取得每个锁,将线程锁上
locks.append(lock) #在locks列表里添加进锁的对象
for i in nloops:
_thread.start_new_thread(loop,(i,loops[i],locks[i])) #创建新的线程,并且调用loop方法
for i in nloops:
while locks[i].locked(): #当锁锁起来时,不做操作
pass
print('All done at: ',ctime()) #打印出所有线程结束时间
if __name__ == '__main__':
main()
from time import ctime, sleep
loops = [4,2] #将休眠时间先放在这个列表里面备用
def loop(nloop, nsec, lock): #三个参数 nloop:线程编号 nsec:休眠时间 lock线程锁
print("Start loop", nloop ,"at: ",ctime())
sleep(nsec)
print("loop",nloop,'done at: ',ctime())
lock.release() #释放线程的锁
def main():
print("Starting at:",ctime())
locks = [] #创建空列表,通过_thread.allocate_lock()得到锁的对象
nloops = range(len(loops)) #读取loops列表的范围
for i in nloops:
lock = _thread.allocate_lock()
lock.acquire() #取得每个锁,将线程锁上
locks.append(lock) #在locks列表里添加进锁的对象
for i in nloops:
_thread.start_new_thread(loop,(i,loops[i],locks[i])) #创建新的线程,并且调用loop方法
for i in nloops:
while locks[i].locked(): #当锁锁起来时,不做操作
pass
print('All done at: ',ctime()) #打印出所有线程结束时间
if __name__ == '__main__':
main()