并发和并行 并发:伪,由于执行速度特别快,人感觉不到停顿。 并行:真,创建10个人同时操作。 线程和进程 + python自己没有线程和进程,调用的是操作系统的线程和进程。 一个应用程序(软件),可以有多个进程(默认只有一个),一个进程中可以创建多个线程(默认一个)。 1. 单进程、单线程的应用程序 ...
分类:
编程语言 时间:
2020-01-29 12:42:46
阅读次数:
66
1 多线程编程 1.1 进程和线程 1.1.1 进程简介 计算机程序不过是磁盘中的可执行的二进制的数据,它们只有在被读到内存中,被操作系统调用的时候才开始它们的生命期。进程是程序的一次执行,每个进程都有自己的地址空间、内存、数据栈及其他记录其运行轨迹和辅助数据。操作系统管理其上运行的所有进程,并为这 ...
分类:
编程语言 时间:
2020-01-27 19:00:19
阅读次数:
97
1 线程与进程 进程:简单来说一个运行着的应用程序就是一个进程,一个进程中至少有一条线程,进程是资源分配的最小单位 线程:是进程的一个执行单元,线程是 CPU 调度的最小单位。 线程5 种状态: 新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、死亡(Dead ...
分类:
编程语言 时间:
2020-01-23 12:36:09
阅读次数:
88
设想这样一个场景: 你创建了10个子线程,每个子线程分别爬一个网站,一开始所有子线程都是阻塞等待。一旦某个事件发生:例如有人在网页上点了一个按钮,或者某人在命令行输入了一个命令,10个爬虫同时开始工作。 肯定有人会想到用Redis来实现这个开关:所有子线程全部监控Redis中名为start_craw ...
分类:
编程语言 时间:
2020-01-17 00:15:06
阅读次数:
253
先上个图看下网页版数据、mysql结构化数据 通过Python读写mysql执行时间为:1477s,而通过Pandas读写mysql执行时间为:47s,方法2速度几乎是方法1的30倍。在于IO读写上,Python多线程显得非常鸡肋,具体分析可参考:https://cuiqingcai.com/332 ...
分类:
数据库 时间:
2020-01-08 00:56:16
阅读次数:
140
原文链接:https://blog.csdn.net/daiyu__zz/article/details/81912018 1 线程基本概念 1.1 线程是什么? 线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1) 地址空间:进程内的一个执行单元;进程至少有一个线程;它们 ...
分类:
编程语言 时间:
2020-01-05 19:16:59
阅读次数:
144
首先,我们直到Python多线程是假多线程,实际上同一时刻只有一个核在执行任务。其次,要知道IO(INPUT/OUPUT)操作不占用CPU,但计算会占用CPU。所以,Python多线程不适合CPU密集操作型任务;适合IO操作密集型任务,比如SocketServer就属于IO操作密集型。如何才能用到C... ...
分类:
编程语言 时间:
2019-12-31 12:26:49
阅读次数:
75
介绍 在Python中,使用多线程multi threading可以『同时』执行多个任务,比如你需要一个线程来复制读取信息,另一个线程来解析。为什么这里的同时要加引号呢,这是由于Python中GIL,也就是全局锁,看似同时执行多个任务,实际上是分布执行的,只不过各自完成不同的任务会提高工作效率。如果 ...
分类:
编程语言 时间:
2019-12-30 21:18:16
阅读次数:
75
1 import threading, time 2 3 class Test(): 4 def test1(self): 5 print("--") 6 time.sleep(3) 7 print(" ") 8 9 10 def test2(self): 11 print("==") 12 tim ...
分类:
编程语言 时间:
2019-12-28 09:36:36
阅读次数:
92
python 提供两种方式来创建线程: 直接调用 threading.Thread 类的构造器函数 继承 threading.Thread 类,重写父类的 run() 方法 1. 直接调用函数 __init__(self,group=None,target=None,name=None,args=( ...
分类:
编程语言 时间:
2019-12-26 11:22:54
阅读次数:
99