600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python thread 多线程

python thread 多线程

时间:2019-01-24 05:53:07

相关推荐

python thread 多线程

thread 模块在python3中改为_thread,网上的各种帖子都说不建议新手使用thread,好吃不好吃总得尝尝看。

1 import _thread 2 3 def print_num(): 4for i in range(100): 5 print(i) 6 7 _thread.start_new_thread(print_num,()) 8 _thread.start_new_thread(print_num,()) 9 _thread.start_new_thread(print_num,())10 _thread.start_new_thread(print_num,())

你猜运行结果是什么?

啥结果也没有。。。。。。因为主线程没有做任何事情直接就结束了。主线程退出的同时子线程没来得及运行就挂了,

也就是说主线成不会等待子线程执行完才退出。

下面线程锁出场了。

_thread.allocate_lock()生成一个锁,在线程函数开始的时候锁住,结束的时候解锁,主线成通过判断锁的状态决定是否退出。

1 import _thread 2 3 def print_num(lock): #线程函数 45for i in range(100): 6 print(i) 7lock.release() 8 9 #生成5把锁10 locks = []11 for i in range(5):12lock = _thread.allocate_lock()13lock.acquire()14locks.append(lock)15 #启动5个线程,每人一把锁16 for i in range(len(locks)): 17_thread.start_new_thread(print_num,(locks[i],))18 19 #主线程分别监视每个锁的状态,知道所有的锁都不是锁定状态,退出20 for i in range(len(locks)):21while locks[i].locked():22 pass

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。