python 多线程的启动与阻塞
2017-07-26 20:14
323 查看
import threading t1=threading.Thread(target=func,args=iterable) t2=threading.Thread(target=func,args=iterable)
创建一个新的进程很简单,func为想要进程执行的函数名,arg即为iterable
如func的参数为整数,传递参数的时候不能写成
t1=threading.Thread(target=func,args=3)
正确的写法为
#能用于for循环的即是iterable t1=threading.Thread(target=func,args=(3,))
启动线程
import time import threading def hold1(limit): i=0 while i<limit: i+=1 print(t1.name,"is runing") time.sleep(1) print(t1.name,"is over") def hold2(limit): i=0 while i<limit: i+=1 print(t2.name,"is runing") time.sleep(1) print(t2.name,"is over") start_time=time.time() t1=threading.Thread(target=hold1,args=(3,)) t2=threading.Thread(target=hold2,args=(6,)) t1.start() t2.start() print(threading.current_thread().name,"耗时",time.time()-start_time)
输出为:
Thread-1 is runing
Thread-2 is runing
MainThread 耗时 0.002000093460083008
Thread-1 is runing
Thread-2 is runing
Thread-1 is runing
Thread-2 is runing
Thread-1 is over
Thread-2 is runing
Thread-2 is runing
Thread-2 is runing
Thread-2 is over
可以看出主线程先于子线程结束,若要主线程等待子线程,则需要join()函数
在源代码的基础上,在t2.start()加入
t1.join() t2.join()
则输出结果为:
Thread-1 is runing
Thread-2 is runing
Thread-2 is runing
Thread-1 is runing
Thread-2 is runing
Thread-1 is runing
Thread-2 is runing
Thread-1 is over
Thread-2 is runing
Thread-2 is runing
Thread-2 is over
MainThread 耗时 6.003343343734741
相关文章推荐
- Python多线程中阻塞(join)与锁(Lock)使用误区解析
- Python多线程中阻塞(join)与锁(Lock)的使用误区
- 【多线程】python界面阻塞,白屏,not responding解决的简单例子
- python非阻塞启动进程
- 【多线程】python界面阻塞,白屏,not responding解决的简单例子
- python多线程编程: python对多线程的支持和线程的创建、启动、挂起、退出
- Python 线程,用类实现多线程,join阻塞主线程
- Python游戏服务器开发日记(二)绕过GIL启动多线程Python环境
- Python中多线程的阻塞问题
- 【多线程】python界面阻塞,白屏,not responding解决的简单例子
- 【多线程】python界面阻塞,白屏,not responding解决的简单例子
- Python游戏server开发日记(二)绕过GIL启动多线程Python环境
- Python编写基于socket的非阻塞多人聊天室程序(单线程&多线程)
- Python3多线程--多线程的2种启动方法
- Python学习笔记(十三)——保持时间、计划任务和启动程序以及多线程
- python之多进程和多线程以及同步异步阻塞
- python 怎么启动一个外部命令程序, 并且不阻塞当前进程
- python批量启动多线程
- Python多线程启动http.server
- C# 1.Winform 同时修改多个config文件2.实时监测某程序运行状态(多线程),未启动时,自启。