博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python创建进程的两种方式
阅读量:5264 次
发布时间:2019-06-14

本文共 1119 字,大约阅读时间需要 3 分钟。

线程内的任务不会同时执行,可以解决的方法是在每个进程里面执行一个线程,可以实现。(GIL的限制)

multiprocessing管理进程的包,threading.Thread用来管理线程

进程可以解决并发,但是相关的消息无法交互,需要借助别的例如Pipe和Queue(但是在使用的时候仍有资源的消耗)

 

进程的创建方式一:函数式

from multiprocessing import Process# 导入创建进程需要的包import  timedef f(name):    time.sleep(1)    # 进程休眠一秒    print('hello',name,time.ctime())if __name__=='__main__':    p_list=[]    for i in range(3):        p=Process(target=f,args=('alvin',))        p_list.append(p)        p.start()    for i in p_list:        p.join()    print('end')结果如下hello alvin Sun Feb 10 12:32:54 2019hello alvin Sun Feb 10 12:32:54 2019hello alvin Sun Feb 10 12:32:54 2019end

进程创建方式二: 类

from  multiprocessing import Processimport timeclass MyProcess(Process):    def __init__(self,name):        super(MyProcess,self).__init__()        self.name=name    #     继承父方法的构造器    def run(self):        time.sleep(1)        print('hello',self.name,time.ctime())if __name__=='__main__':    p_list=[]    for i in range(3):        p=MyProcess('jiao')        p.start()        p_list.append(p)    for p in p_list:        p.join()    print('end')

 

转载于:https://www.cnblogs.com/qiujichu/p/10359120.html

你可能感兴趣的文章
Problem I. Count - HDU - 6434(欧拉函数)
查看>>
angularjs 点击事件与动态追加
查看>>
如何在ScrollView中嵌套ListView
查看>>
委托和事件的简单实用
查看>>
面试题答案一
查看>>
arcgis 10.3 属性表乱码解决方案
查看>>
[转] Word2vec数学原理全家桶
查看>>
转:ArcGIS10.1正式版安装与破解
查看>>
国内代码托管
查看>>
sql进阶-筛选库表中数据为空的表
查看>>
ife task0003学习笔记(二):JavaScript原型
查看>>
SQL循环遍历,删除表里某一列是重复的数据,只保留一条。
查看>>
JAVA安装及环境变量配置
查看>>
WCF 第八章 安全 消息层安全
查看>>
WCF 第八章 安全 确定替代身份(下)-模仿用户
查看>>
ecshop 的transport.js 与jqueyr冲突
查看>>
css渲染(三)颜色与背景
查看>>
[ios] UIWebView的离线缓存【转】
查看>>
如何写复杂的SQL
查看>>
HNOI2002 营业额统计
查看>>