multithreading多线程,多进程

 1 import random
 2 import threading
 3
 4 results = []
 5
 6 def compute():
 7     #random.randint(1,100) 返回一个随机值
 8     results.append(sum([random.randint(1,100) for i in range(1000000)]))
 9 #开启八个线程
10 workers = [threading.Thread(target=compute) for i in range(8)]
11
12 for worker in workers:
13     worker.start()
14
15 for worker in workers:
16     worker.join()
17
18 print results
19
20
21 >>>
22 [50525916, 50480384, 50472573, 50504944, 50472008, 50478334, 50525776, 50519455]
23 >>> sum([50525916, 50480384, 50472573, 50504944, 50472008, 50478334, 50525776, 50519455])
24 403979390
25 >>> 
 1 import multiprocessing
 2 import random
 3
 4 def compute():
 5     return sum(
 6             [random.randint(1,100) for i in range(1000000)])
 7
 8 #创建8个进程pool池
 9 pool = multiprocessing.Pool(8)
10
11 #开始八个进程
12 print pool.map(compute,range(8))
时间: 2024-10-10 16:30:38

multithreading多线程,多进程的相关文章

Python有了asyncio和aiohttp在爬虫这类型IO任务中多线程/多进程还有存在的必要吗?

最近正在学习Python中的异步编程,看了一些博客后做了一些小测验:对比asyncio+aiohttp的爬虫和asyncio+aiohttp+concurrent.futures(线程池/进程池)在效率中的差异,注释:在爬虫中我几乎没有使用任何计算性任务,为了探测异步的性能,全部都只是做了网络IO请求,就是说aiohttp把网页get完就程序就done了. 结果发现前者的效率比后者还要高.我询问了另外一位博主,(提供代码的博主没回我信息),他说使用concurrent.futures的话因为我全

多线程多进程基础

看廖雪峰的多线程多进程教程看的云里雾里的,google了一下,贴上来点重点. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间.多任务操作系统可以“并发”执行这些进程. 线程是指进程中乱序.多次执行的代码块,多个线程可以“同时”运行,所以认为多个线程是“并发”的. 多线程vs多进程 操作系统会为每个进程分配不同的内存块,而多个线程共享进程的内存块.这带来最直接的不同就是创建线程的开销远小于创建进程的开销. 同时,由于内存块不同,所以进程之间的通信相对困难.需要采用pipe/n

多线程,多进程选择(了解)

鱼还是熊掌:浅谈多进程多线程的选择 关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害. 经常在网络上看到有的XDJM问“多进程好还是多线程好?”.“Linux下用多进程还是多线程?”等等期望一劳永逸的问题,我只能说:没有最好,只有更好.根据实际情况来判断,哪个更加合适就是哪个好. 我们按照多个不同的维度,来看看多线程和多进程的对比(注:因为

Git的使用及网络编程多线程多进程

Git的使用 1.打开CMD命令行,输入cd Desktop进入桌面 2.输入 mkdir + 'file name'创建文件,如果已有项目则输入 cd + file name进入文件,如果在Git上已有项目并且在已有项目进行修改,则输入cd clone + url 3.如果第一次使用,则先初始化,git init 4. git add + file name 把项目加入文件夹里面 5.git config -global 全局设置(第一次使用的时候设置) 6. git log 查看日志.git

Python多线程多进程那些事儿看这篇就够了~~

自己以前也写过多线程,发现都是零零碎碎,这篇写写详细点,填一下GIL和Python多线程多进程的坑~ 总结下GIL的坑和python多线程多进程分别应用场景(IO密集.计算密集)以及具体实现的代码模块. 目录   0x01 进程 and 线程 and “GIL” 0x02 python多线程&&线程锁&&threading类 0x03 python队列代码实现 0x04 python之线程池实现 0x05 python多进程并行实现 0x01 进程 and 线程 and “

线程 进程 多线程 多进程

进程和线程的主要区别在于多进程每个进程拥有独立存储空间,而多线程共享存储空间.对于单核CPU来讲,如果是阻塞操作,或者不耗时非阻塞操作,多进程/线程不会提高效率,这时候多进程/线程最有用的通常是耗时而又非阻塞的I/O操作. 打个比喻,一个人要看两部电影,可以看完一部再看另一部,也可以同时看,看一眼这个暂停,看一眼那个再暂停看回前一个,快速不停切换,你会觉得因为两部一起看所以先看完吗?理论上两部电影播放时间加起来是一样,所以看完所用时间应该一样.但是实际使用时间反而可能第一种方法快,为什么?切换是

什么是多线程 多进程

1:要想了解多线程,必须先了解线程,而要想了解线程,必须先了解进程,因为线程是依赖于进程而存在. 2:什么是进程? 通过任务管理器我们就看到了进程的存在. 而通过观察,我们发现只有运行的程序才会出现进程. 进程:就是正在运行的程序. 进程是系统进行资源分配和调用的独立单位.每一个进程都有它自己的内存空间和系统资源. 3:多进程有什么意义呢? 单进程的计算机只能做一件事情,而我们现在的计算机都可以做多件事情. 举例:一边玩游戏(游戏进程),一边听音乐(音乐进程). 也就是说现在的计算机都是支持多进

python - 多线程/多进程

多线程: import threading from multiprocessing import Queue from time import sleep from bs4 import BeautifulSoup from requests import get import re class myThread(threading.Thread): def __init__(self, qlock, queue): threading.Thread.__init__(self) self.q

多线程&多进程

一.多线程 概念 进程是程序在计算机上的一次执行活动.当你运行一个程序,你就启动了一个进程.显然,程序是死的(静态的),进程是活的(动态的).进程可以分为系统进程和用户进程.凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身:用户进程就不必我多讲了吧,所有由你启动的进程都是用户进程.进程是操作系统进行资源分配的单位. 它的思想简单介绍如下:在操作系统的管理下,所有正在运行的进程轮流使用CPU,每个进程允许占用CPU的时间非常短(比如10毫秒),这样用户根本感觉