线程线程是一个任务,通过多个工人去完成。任务是一个任务,但是执行任务的人更多,从而提升任务执行时间。案例:Python 爬虫,爬取漫画网站,或者是爬取下载电影,任务是下载当前页面的所有电影资源,如果单线程的...
线程
线程是一个任务,通过多个工人去完成。任务是一个任务,但是执行任务的人更多,从而提升任务执行时间。
案例:Python 爬虫,爬取漫画网站,或者是爬取下载电影,任务是下载当前页面的所有电影资源,如果单线程的话,需要挨个下载。伪代码如下:
# 耗时 len(URLs)*单次下载平均时间
for URL in URLs: download(URL) save()
如果多线程的话,耗时就远远小于总耗时时间。
进程
而每个进程,代表一个任务,然后我需要完成相同的这种任务,就开启多个进程。
案例:笔者打算写一个设备的模拟器程序,使用 Modbus TCP 协议开发,一个进程扮演一个 Slave (从机)角色,当设备设置好监听端口后,它会不断的接收发送来自于 Master (主机)的通信请求,并作出响应。
Demo
1. 线程演示程序
# 采用传参方式
import time,threading def demo(n,id): while n >= 0: print('id:',id,'n:',n) n -= 1 time.sleep(1) def main(): t1 = threading.Thread(target=demo,args=(10,1)) t2 = threading.Thread(target=demo,args=(10,2)) t1.start() t2.start() t1.join() t2.join() print('exit') if __name__ == '__main__': main()
2. 构造类
import time,threading class A(threading.Thread): def __init__(self, p1,p2): threading.Thread.__init__(self) self.p1 = p1 self.p2 = p2 def run(self): n,i = self.p1,self.p2 demo(n,i) def demo(n,id): while n >= 0: print('id:',id,'n:',n) n -= 1 time.sleep(1) def main(): t1 = A(10,1) t2 = A(10,2) t1.start() t2.start() t1.join() t2.join() print('exit') if __name__ == '__main__': main()
沃梦达教程
本文标题为:Python 线程与进程


猜你喜欢
- Python 保存数据的方法(4种方法) 2023-09-04
- Python之路-Python中的线程与进程 2023-09-04
- python中列表添加元素的几种方式(+、append()、ext 2022-09-02
- 在centos6.4下安装python3.5 2023-09-04
- python中defaultdict用法实例详解 2022-10-20
- windows安装python2.7.12和pycharm2018教程 2023-09-03
- Python Pandas如何获取和修改任意位置的值(at,iat,loc,iloc) 2023-08-04
- python线程池ThreadPoolExecutor与进程池ProcessPoolExecutor 2023-09-04
- Python实现将DNA序列存储为tfr文件并读取流程介绍 2022-10-20
- CentOS7 安装 Python3.6 2023-09-04