Python 多线程 Thread包
来源:互联网 发布:潘安传奇网络电影 编辑:程序博客网 时间:2024/05/21 17:55
Python 多线程 Thread包
进程是一个执行中的程序,有自己的生命周期,拥有自己的地址空间、内存、数据栈以及其他用于跟踪执行的辅助数据。线程是在同一进程下执行,共享相同的上下文。
线程有开始、执行循序和结束三个部分,指令指针,用于记录当前上下文。并且线程可以被其他线程抢占(中断)和临时挂起(睡眠),即让步。
1.Python 执行机制
Python代码执行是由Python虚拟机进行控制,在主循环中同时只能有一个线程进行执行,类似于分时系统。
对Python虚拟机的访问,由全局解释(GIL)控制,GIL用于保证同时只能有一个线程运行。
1.设置GIL
2.切换一个线程运行
3.下面操作之一:
a.指定数量的字节码指令
b.线程主动让出控制权
4.把线程设置回睡眠状态
5.解锁GIL
6.重复
2.在Python中使用线程
import thread #导入thread库from time import sleep,ctime#休眠 时间loops = [4,2]#睡眠时间def loop(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 = [] nloops = range(len(loops)) for i in nloops: lock = thread.allocate_lock()#分配LockType锁对象 lock.acquire()#获取锁对象 locks.append(lock) for i in nloops: thread.start_new_thread(loop,(i,loops[i],locks[i])) for i in nloops: while locks[i].locked():pass print 'all done at :',ctime()if __name__ == '__main__': main()
阅读全文
0 0
- Python 多线程 Thread包
- Python 多线程编程,thread
- python多线程thread
- Python thread 多线程
- python多线程模块thread
- Python 多线程 thread
- python--thread多线程总结
- Python多线程(Thread)
- [Python]多线程入门 --thread使用
- python——多线程thread
- Python:继承Thread实现多线程
- Python多线程:thread、threading、queue
- Python中thread 多线程处理
- tk借助Thread包实现多线程实例
- python多线程模块thread,threading,Queue
- Python多线程thread与threading实现
- Python模块学习 ---- thread 多线程处理
- Python模块学习 ---- thread 多线程处理
- 返回值与输出参数比较(return value or out parameter)
- c++11中输出enum class变量的数值
- SpringMVC请求流程
- 【C语言】for语句
- 营养联系行为
- Python 多线程 Thread包
- 邻接表
- 神奇的伽玛函数(下)
- 怎么样更改placeholder中文字的颜色属性
- 正向代理和反向代理的区别
- BZOJ 3687: 简单题 bitset 题解
- 欢迎使用CSDN-markdown编辑器
- vector的几种初始化和遍历
- LIS:最长非降子序列长度