惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
N
Netflix TechBlog - Medium
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园_首页
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
Hugging Face - Blog
Hugging Face - Blog
量子位
Blog — PlanetScale
Blog — PlanetScale
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
阮一峰的网络日志
阮一峰的网络日志
D
Docker
罗磊的独立博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
云风的 BLOG
云风的 BLOG
IT之家
IT之家
MyScale Blog
MyScale Blog
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - chromecrown

MacBook M3 安卓系统层开发环境搭建 C# 语言规范 spring 排除指定的类或者包扫描 java web spring 发送邮件 spring-data-redis和jedis版本对应收集总结 python 调用nmap javascript定时函数 UML学习备忘 听王竑锜老师讲课笔记 WebLogic 8.1 部署问题记录 JavaScript中JSONObject和JSONArray相关知识备忘(网络转载) struts 2 result-types 备忘 小小菜鸟学习mysql 基本操作命令 备忘 VMware虚拟机网络配置相关备忘 visual Studio C# 环境下 创建windows 服务 使用C#调用系统API实现锁定计算机 心情状态---所困 jsf 阶段性总结
python 多线程和多进程基本写法
chromecrown · 2016-03-17 · via 博客园 - chromecrown
#coding=utf-8

def aJob(arg):
    """
    提供给多线程调用
    """
    import threading
    t = threading.current_thread()
    print str(arg)+"current thread name is:"+t.getName()+"\n"


def multiThread():
    """
    多线程任务执行
    """
    from multiprocessing.dummy import Pool as ThreadPool
    from multiprocessing import cpu_count
    cnt_cpu = cpu_count()
    cpus = 10*cnt_cpu #线程池大小
    pool = ThreadPool(cpus)
    _lstParam = range(0,10000)
    pool.map(aJob,_lstParam)
    pool.close()
    pool.join()
    print "multi thread job done"

################以下是多进程############################    
def runProc(name):
    """
    提供给多进程调用
    """
    import os
    print "child process %s(%s)"%(name,os.getpid())
    
def multiProcess():
    """
    多进程
    """
    from multiprocessing import Pool
    from multiprocessing import cpu_count
    import os
    cpus = 1*cpu_count()
    lst_grp = range(0,100)
    p = Pool(cpus)
    for i in range(0,100):
        p.apply_async(runProc,args=(lst_grp[i],))
    p.close()
    p.join()
    print "multi process job done"

def oneProcess():
    """
    启动一个进程
    """
    from multiprocessing import Process
    import os
    p = Process(target=runProc,args=("processName",))
    print "one process will start"
    p.start()
    p.join()
    print "one process end"

if __name__ == "__main__":
    multiThread()#多线程
    multiProcess()#多进程
    oneProcess()#启动一个进程

from multiprocessing.dummy import Pool as ThreadPool    表示引入多线程池

from multiprocessing import cpu_count    表示计算所在计算机cpu数量

from multiprocessing import Pool  引入多进程池