多线程与多进程比较
来源:互联网 发布:视频互动软件 编辑:程序博客网 时间:2024/06/05 08:17
在学习到操作系统时充满了迷惑,参考别的文章,在此对线程及进程的效率比较,以加深理解。
- 线程及进程含义。对操作系统来说,一个任务就是一个进程,如:打开Chrome,就启动了Chrome进程。而打开浏览器后的搜索,收藏,设置等子任务,称为线程。进程是由若干个线程组成,一个进程至少有一个线程。多任务可以有多个进程完成,也可以有一个进程内的多个线程完成,当然也可以多进程,多线程。
- 单进程,多线程,多进程比较。同时访问一百次CSDN主页,分别进程操作获取所需时间。
- 代码如下
3.1 单进程
import requests,time#获取当前的开始时间start_time = time.time()#访问一百次主页[requests.get('http://www.csdn.net/?ref=toolbar') for x in range(100)]print("用时:%s" %(time.time()-start_time))
输出结果为:
用时:13.618778944015503
3.2 多线程
import threadpool,requests,timestart_time = time.time()def run(url): r=requests.get(url=url)pool = threadpool.ThreadPool(10)reqs = threadpool.makeRequests(run,['http://www.csdn.net/?ref=toolbar' for x in range(100)])[pool.putRequest(x) for x in reqs]pool.wait()print("用时:%s" %(time.time()-start_time))
输出结果
用时:2.3481340408325195
3.3 多进程
import multiprocessing,time,requestsstart_time = time.time()def run(url): r = requests.get(url=url)if __name__=="__main__": pool = multiprocessing.Pool(10) [pool.apply_async(run,args=("http://www.csdn.net/?ref=toolbar",))for i in range(100)] pool.close() pool.join() print("用时:%s" %(time.time()-start_time))
输出结果
用时:4.41025185585022
不知道对不对,求指正。
阅读全文
0 0
- 多线程与多进程比较
- 多线程与多进程比较
- 多进程与多线程的深度比较
- 多进程与多线程的深度比较
- 多进程与多线程的深度比较
- python多进程与多线程比较
- 多线程多进程比较
- Linux多进程与多线程的深度比较
- 多进程与多线程的退出状态以及深度比较
- mapreduce采用多进程与spark采用多线程比较
- python 多线程与多进程的简单测试比较
- Linux多进程与多线程的深度比较
- 多进程和多线程比较
- 多进程及多线程比较
- 多进程和多线程比较
- 多线程 和 多进程 比较
- 什么是多线程和与进程的比较
- 多线程与多进程
- COM简介及一个小Demo
- Beans HDU
- Kanade's trio hdu 6059 字典树
- LCA (最近公共祖先问题)
- SQL:count(col)不统计col为null的行
- 多线程与多进程比较
- Linux源码—异常
- linux的查找命令
- Android SQLiteDatabase数据库, SimpleCursorAdapter, Cursor
- mac下安装php-redis扩展
- android反编译-修改别人apk(如何无视R文件,使用新增布局xml drawable等)
- Linux服务管理---系统运行级别、rpm启动与自启动、源码包的启动
- 常用Linux进程及作业管理命令
- 类的虚继承