进程线程携程

一.定义

1. 进程

统资源分配和调度的基本单位,一个程序运行起来进程管理器就可以看到

进程间通信使用消息队列,redis管道

2. 线程

CPU资源分配和调度的基本单位,一个进程下至少有一个线程

3. 协程

单线程下的并发,程序层面控制的任务切换

二. 如何使用

1.开启进程的两种方式

1.写一个类,继承Process,重写类的run方法---》实例化得到对象,对象.start 开启了进程

2.通过Process类实例化得到一个对象,传入任务 ,调用对象.start 开启了进程

2.开启线程的两种方式

1.写一个类,继承Thread,重写类的run方法---》实例化得到对象,对象.start 开启了进程

2.通过Thread类实例化得到一个对象,传入任务 ,调用对象.start 开启了进程

3.开启协程

早期:借助于gevent模块,基于greelet写,使用asyncio包,里面有async和await关键字

使用:

1.必须写在想要开启协程函数之前 async def test()

2.io操作的代码必须使用await

async def test():
    a+1
    await 遇到io操作的代码

三.使用场景

1.一般遇到计算密集型的操作,开多进程,io密集型的操作,开多线程

2.爬虫爬别人数据,喜欢开多线程,爬虫io居多

3.程序中,异步做一件事情,也可以开多线程,比如一个视图函数异步把数据写的文件中,异步发送钉钉通知,异步发送邮件

4.在项目中,不需要我们开启进程线程,可以借助于第三方的框架比如celery,就可以做异步的操作。celery的worker,就是进程线程架构,django框架支持并发,没有开启多进程和多线程,但是符合uwsgi的web服务器在进入djagno框架之前,开启了进程和线程来执行视图函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值