发布于2019-08-17 14:56 阅读(2181) 评论(0) 点赞(3) 收藏(5)
一、多线程
1.我们的环境
(1)xubuntu 16.04(2)anaconda(3)pycharm(4)python 3.6
2.程序:一堆代码以文本的形式存入一个文档
3.进程:程序运行的一个状态。
特点:(1)其中包含地址控件、内存、数据栈等;(2)每个进程由自己完全独立的运行环境,多进程共享数据是一个问题。
4.线程:一个进程的独立运行片段
特点:(1)一个进程可以有多个线程;(2)轻量化的进程;(3)一个进程的多个线程间共享数据和上下文运行环境;(4)共享互斥问题
5.全局解释器锁(GIL)
(1)Python代码的执行是由python虚拟机进行控制
(2)在主循环中只能有一个控制线程在执行
6.python包
(1)thread:有问题,不好用,python3改为_thread
(2)threading:通行的包
7.例子:
import threading,time import _thread as thread #利用time生成两个函数 def loop1(): print("Start loop 1 at:",time.ctime()) time.sleep(4) print("End loop 1 at :",time.ctime()) def loop2(): print("Start loop 2 at :",time.ctime()) time.sleep(2) print("End loop 2 at :",time.ctime()) def main(): print("Start at :",time.ctime()) thread.start_new_thread(loop1,())#这里里面的第二个位置是用来传递参数的,因为咱们的函数刚好没有参数,因此咱们传递了一个空参数 thread.start_new_thread(loop2,()) print("End at :",time.ctime()) if __name__ == "__main__": main()
解释:如上图的运行结果:按照顺序输出开始时间,然后应该是线程1,线程2,最后是结束时间,从运行结果来看,现在只有开始时间以及结束时间,中间那两个线程都没了,这是因为,我们让这两个线程开始执行的时候我们的主线程已经之行结束了,导致中间两个线程都没有执行完,主线程终止了,所有中间的两个线程也结束了。优秀!!
二、源码
d24_1_multithread.py
地址:https://github.com/ruigege66/Python_learning/blob/master/d24_1_multithread.py
2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换
作者:小胖子爱吃土豆
链接:https://www.pythonheidong.com/blog/article/47556/98a86f2b1a15f028fb8d/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!