多线程
淋巴不想动
logout
展开
-
python-线程
程序、进程、线程的普通理解程序: /bin/firefox是一个二进制程序, (eg:python, Java程序), 是一个真实存在的, 可以看到的实体;进程: 执行程序的过程中产生的一系列内容,(计算机给进程分配了内存, cpu等…)线程: 是执行进程专业的总结:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结...原创 2019-02-04 17:01:47 · 146 阅读 · 0 评论 -
python-实现多线程的三种方法
1._thread.start_new_thread(了解)import threadingimport timeimport _threaddef job(): print("这是一个需要执行的任务。。。。。") print("当前线程的个数:", threading.active_count() ) print("当前线程的信息:原创 2019-02-09 16:47:31 · 7878 阅读 · 0 评论 -
python -GIL全局解释器锁
python使用多线程, 一定运行速度快么? 为什么?GIL(global interpreter lock)全局解释器锁:python解释器中任意时刻都只有一个线程在执行;GIL执行过程:1). 设置一个GIL;2). 切换线程去准备执行任务(Runnale就绪状态);3). 运行;4). 可能出现的状态:- 线程任务执行结束;- time.sleep()- 需要获取其他的...原创 2019-02-09 23:13:29 · 203 阅读 · 0 评论 -
python-队列与线程
1). 理论上多线程执行任务是不能获取返回结果的, 因此需要一个容器来存储产生的数据;2). 容器该如何选择?list(栈, 队列)tuple(元组是不可变的, 不可使用),set(集合默认会去重, 所以不选择),dict(需要key value不符合) 选择队列类型存储(FIFO===first input first output)队列Queue,源代码中有许多类方法有最...原创 2019-02-09 23:30:32 · 133 阅读 · 0 评论 -
python -生产者消费者模型
什么是生产者-消费者模型?某个模块专门负责生产数据, 可以认为是工厂;另外一个模块负责对生产的数据进行处理的, 可以认为是消费者.在生产者和消费者之间加个缓冲区(队列queue实现), 可以认为是商店.生产者 -----》缓冲区 -----》 消费者优点:1). 解耦:生产者和消费者的依赖关系减少;2). 支持并发;是两个独立的个体, 可并发执行;具体可以看这篇博客:生产...原创 2019-02-10 15:49:38 · 2478 阅读 · 0 评论 -
python -线程锁
1. 为什么需要线程锁?多个线程对同一个数据进行修改时, 可能会出现不可预料的情况.2. 如何实现线程锁? # 1. 实例化一个锁对象; lock = threading.Lock() # 2. 操作变量之前进行加锁 lock.acquire() # 3. 操作变量之后进行解锁 lock.release()pytho...原创 2019-02-10 16:27:59 · 177 阅读 · 0 评论 -
python -下载器
单线程下载器:1.随便找一个你想下载的图片,右键查看审查元素会跳出html的页面点击小方框带箭头的那个按钮,这一会随着鼠标的移动,显示html代码,我们选择中要下载的图片,自动就会跳到图片对应的那段程序,我们复制程序中图片网址,作为url地址。from urllib.request import urlopenurl='http://gr.xupt.edu.cn/_mediafile/...原创 2019-02-10 19:02:17 · 607 阅读 · 0 评论 -
python -线程池
1.线程池-submitpython3.2版本之后才有的;from concurrent.futures import ThreadPoolExecutordef job(num): # 需要执行的任务 print("这是一个%s任务" %(num)) return "执行结果:%s" %(num)if __name__ == '__main__': ...原创 2019-02-12 17:01:16 · 1233 阅读 · 1 评论 -
python -线程池实现生产者消费者模型
之前我们学过多线程的生产者消费者模型还以这个判断端口是否可以访问为例:先生成数据:def create_data(): """创建测试数据, 文件中生成200个IP""" with open('doc/ips.txt', 'w') as f: for i in range(200): f.write('172.25.254.%s\n'...原创 2019-02-12 17:17:08 · 1447 阅读 · 0 评论