Python多线程,多进程

以实用为目的,记几个python的多线程,多进程模块

# 先定义需要执行的任务函数
def do_job(arg):
    print 'hello', arg
    return arg + ', done'

一、多线程

Thread模块

import Thread

# 使用start_new_thread开启新线程
thread.start_new_thread(printArg, 'Anne')

Threading模块

import threading

threads = []
for arg in arg_list:
    t = threading.Thread(target=printArg, name=None, args=(arg)) 
    t.start()
    threads.append(t)

[t.join() for t in threads]

当多线程需要共享数据时,使用线程锁实现简单的线程同步。Threading提供两个线程锁:Lock(),Rlock(),Lock属于全局,Rlock属于线程,推荐使用Rlock()。

def do_job(arg):
    lock = threading.RLock()
    lock.acquire()
    print arg  # do something
    lock.release()

注意:线程锁应该使用在线程内部

二、 线程池

threadpool模块

import threadpool

创建线程池,并定义参数

poolsize = 5
list_of_args = [1,2,3,4,5]
pool = ThreadPool(poolsize)

创建线程请求,可以定义callback函数

requests = threadpool.makeRequests(some_callable, list_of_arg, callback=None)  

执行每个线程

result = [pool.putRequest(req) for req in requests]
pool.wait()  # 等待所有的线程完成
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Python多线程多进程 QUICK START 1.[endif]进程和线程 1.1系统多任务机制 多任务操作的...
    进化的程序猿阅读 619评论 0 0
  • 线程 操作系统线程理论 线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有...
    go以恒阅读 1,800评论 0 6
  • python多线程、多进程、协程的使用 本文主要介绍多线程、多进程、协程的最常见使用,每个的详细说明与介绍有时间会...
    halleyshx阅读 759评论 0 2
  • 一、作者感慨 。 二、什么是线程/进程 线程是操作系统能够进行运算调度的最小单位。他被包含在进程之中,是进程中的实...
    两点半的杂货铺阅读 423评论 2 3
  • 预计错误,原以为3140要反复争夺下,没想到一下子就冲过去了,特别是今天,连续大涨两天居然抛压没那么沉重。脸打就打...
    股票区阅读 152评论 0 0

友情链接更多精彩内容