python 线程与进程

原创 2016年05月30日 11:27:01

0. 计算100w随机数的和,分别用多进程和多线程,结果是在同样的环境下,多进程更能压榨每个cpu使用率,因为GIL的存在,所以python里面的多线程效率有瓶颈。

当然老司机知道,这种cpu密集的运算,本来就不应该用多线程来做,这是后话。
例子是抄的,对比一下很明显。

import multiprocessing
import random

def compute(n):
    return sum(
        [random.randint(1, 100) for i in range(1000000)])


pool = multiprocessing.Pool(8)
print "results: %s" % pool.map(compute, range(8))
import random
import threading

results = []

def compute():
    results.append(sum(
        [random.randint(1, 100) for i in range(1000000)]))


workers = [threading.Thread(target=compute) for x in range(8)]

for worker in workers:
    worker.start()

for worker in workers:
    worker.join()

print "results: %s" % results

相关文章推荐

python ----进程与线程(三)

Event对象 线程的一个关键特性是每个线程都是独立运行且状态不可预测。如果程序中的其 他线程需要通过判断某个线程的状态来确定自己下一步的操作,这时线程同步问题就 会变得非常棘手。为了解决这些问题,...

Python_进程_线程篇

本节内容 操作系统发展史介绍进程、与线程区别python GIL全局解释器锁线程 语法join线程锁之Lock\Rlock\信号量将线程变为守护进程Event事件 queue队列生产者消费...

python学习——进程和线程

很多同学都听说过,现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。 什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比...

Python笔记-进程Process、线程Thread、上锁

进程Process、线程Thread、上锁

Python基础之九进程和线程

import os print('Process (%s) start...' % os.getpid()) pid = os.fork() if pid == 0: print('I an ...

python 自学笔记 进程和线程

多任务 多进程模式 多线程模式 多进程+多线程模式 多进程(multiprocessing) multiprocessing 在windows上,该模块提供了一个process类来代表一个进程对象。...

【Python多进程库】一个函数让你设置CPU数和线程数

使用multicpu之后,你需要一个函数,就可以定义你程序运行时所需的CPU数量和每个CPU占用的线程数量。 重点是,代码只有60行不到,你可以很轻松的阅读源码。...
  • cyh24
  • cyh24
  • 2015年10月21日 23:59
  • 3664

Python 中的进程、线程、协程、同步、异步、回调

进程和线程究竟是什么东西?传统网络服务模型是如何工作的?协程和线程的关系和区别有哪些?IO过程在什么时间发生? 一、上下文切换技术 简述 在进一步之前,让我们先回顾一下各种上下文切换...

Python 中的进程、线程、协程、同步、异步、回调

进程和线程究竟是什么东西?传统网络服务模型是如何工作的?协程和线程的关系和区别有哪些?IO过程在什么时间发生? 在刚刚结束的 PyCon2014 上海站,来自七牛云存储的 Python 高级工程师许...

Python之路,进程、线程、协程篇

转自:原文地址:http://www.cnblogs.com/alex3714/articles/5230609.html 本节内容 进程、与线程区别 cpu运行原理 python GIL全局...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python 线程与进程
举报原因:
原因补充:

(最多只允许输入30个字)