python中的进程、线程、协程,它们的区别和联系

1. 进程的定义

进程是系统进行资源分配和调度的一个独立单位。

import multiprocessing
import time
def sing():
    for i in range(89):
        print('----正在唱歌-----')
        time.sleep(1)
def dance():
    for i in range(3):
        print('----正在跳舞-----')
        time.sleep(89)
if __name__ == '__main__':
    #创建两个进程
    p1=multiprocessing.Process(target=sing)
    p2=multiprocessing.Process(target=dance)
    # 开始执行进程
    p1.start()
    p2.start()

进程之间通讯

  1. queue队列

队列是一种先进先出的存储数据结构,就比如排队上厕所一个道理。两个进程通讯,就是一个子进程往queue中写内容,另一个进程从queue中取出数据。就实现了进程间的通讯了。

  • 创建 queue队列对象
q = multiprocessing.Queue(maxsize) 

参数 :maxsize是队列中允许的最大项数。如果省略此参数,则无大小限制。
返回值q 是队列对象

  • put()方法 ,向队列中存放数据。如果队列已满,此方法将阻塞至有空间可用为止。
  • get()返回q中的一个项目。如果q为空,此方法将阻塞&#
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python进程线程和程是实现并发编程的不同方式。 1. 进程(Process)是操作系统分配资源的基本单位,每个进程有独立的内存空间,互不干扰。进程之间的通信需要使用特定的机制,如管道、消息队列等。在Python,可以使用`multiprocessing`模块创建和管理进程。 2. 线程(Thread)是进程内的独立执行流,一个进程可以包含多个线程,它们共享相同的内存空间。线程之间的通信比进程更方便,可以使用共享内存或者全局变量。然而,由于全局解释器锁(GIL)的存在,同一时间只有一个线程在执行Python字节码,因此多线程在CPU密集型任务并不能提高性能。但是对于I/O密集型任务,多线程可以提升效率。Python内置的`threading`模块提供了对线程的支持。 3. 程(Coroutine)是一种轻量级的线程,由程序控制在特定位置进行挂起和恢复的并发执行。程能够在执行过程被暂停和继续,并且可以通过yield语句进行交互式通信。Python程通过生成器函数(generator function)和`asyncio`库来实现。 总结一下: - 进程是资源分配的基本单位,进程之间资源独立,通信复杂。 - 线程是进程内的执行流,共享内存,通信相对方便,但受到GIL的限制。 - 程是一种轻量级的线程,可以在特定位置挂起和恢复执行,并通过yield语句进行通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值