Python实战之processing进程(多进程,进程池,lock锁,进程间的通讯(QUEUES,PIPE,MANAGER))

本文介绍了Python的进程管理,包括多进程、进程池、锁的概念与使用,并详细讲解了进程间的通信方式如QUEUES、PIPE和MANAGER,帮助理解Python中进程的创建与同步。
摘要由CSDN通过智能技术生成

上一篇:python实战之paramiko模块 点击跳转
目录篇:python相关目录篇 点击跳转
下一篇:Python实战之线程点击跳转
同类篇:Python实战之协程 点击跳转

目录


首先须知

什么是IO?
从硬盘读块数据,从网络读块数据属于IO操作(IO操作不占用cpu(计算占用cpu,如:1+1))
Python多线程其实就是一个线程,由于利用CUP的上下文切换看起来就像是并发..上下文切换消耗资源
Python多线程 不适合CPU密集操作型的任务,适合IO操作密集型的任务
大量运算占CPU尽量少用多线程,用单进程更快
sockeserver接收多个网络并发的就是IO操作密集型的


如果一定要使用CPU密集操作型的任务呢?Python怎么解决?
使用多进程来解决CPU密集操作型的任务。
Python的线程是调用操作系统的原生线程,进程也是调用操作系统的原生进程,原生进程是由操作系统自己维护的。Python只是调用了C代码库的一个接口启动进程的,真正的进程管理还是操作系统自己完成的

进程processing

1.程序是不能单独运行的,只能装载到内存,系统为他分配资源进行运行,这种运行程序称之进程
2.进程同一时间只能干一件事,每个进程只能控制CPU一个核,由于多核同时可以多个进程,由于计算机的速度太快,1秒干了N件事,让我们看起来就等于同时干了N件事
3.进程要操作CUP必须创建一个线程,进程本身是不可以执行的,通过线程才可以进行操作CPU
4.得出结论,进程至少要有一个线程,否则就无法执行

多线程简单版

__author__ = "Burgess Zheng"

import multiprocessing
import time
import threading

def thread_run():#测试线程用的
    print(threading.get_ident()) #threading.get_ident():显示线程号

def run(name):
    time.sleep(2)
    print("hello",name)
    t = threading.Thread(target=thread_run,)#实例化线程
    t.start()#启动线程

#循环启动多个进程并发
if __name__ == '__main__':
    for i in range(10):#循环启动10进程
        p = multiprocessing.Process(target=run,args=('bob%s'%i,))
        p.start()
#和线程格式一样的

执行结果:

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值