当前位置: 首页 > news >正文

图片制作视频的软件/seo优化师就业前景

图片制作视频的软件,seo优化师就业前景,数字营销推广平台,手机做网站公司进程进程是资源分配的单位,进程不会工作,可以看作进程只是向CPU申请一块资源空间进程切换需要的资源最大,效率低线程线程是操作系统调度的单位,在CPU中真正工作的是线程线程切换需要的资源一般,效率一般(除GIL)协程协程…
  • 进程

    • 进程是资源分配的单位,进程不会工作,可以看作进程只是向CPU申请一块资源空间

    • 进程切换需要的资源最大,效率低

  • 线程

    • 线程是操作系统调度的单位,在CPU中真正工作的是线程

    • 线程切换需要的资源一般,效率一般(除GIL)

  • 协程

    • 协程切换的任务资源少,效率高

    • 多进程、多线程根据CPU核不一样可能是并行的,但是协程是在一个线程中,所以是并发

进程 

multiprocessing 模块

参考代码:

https://github.com/huangsv/pythonCode/blob/main/multiprocessing_demo.py

b84358e45b0b202895dc5b76b8168932.png

Process 子类

参考代码:

https://github.com/huangsv/pythonCode/blob/main/process_demo.py

b130bdd9a607d02ead27774aec830e54.png

Pool 进程池

参考代码:https://github.com/huangsv/pythonCode/blob/main/pool_demo.py

795b55fc580f5edeb01f70739eecd5f4.png

Queue 队列实现进程间的消息通信(进程与进程间不能实现消息通信)

参考代码:https://github.com/huangsv/pythonCode/blob/main/process_queue_demo.py

38fb99186549a8a06174e92951203433.png

线程

threading 模块

参考代码:https://github.com/huangsv/pythonCode/blob/main/threading_demo.py

cd52100d10a549c78200d0deeeaf4079.png

Thread 子类创建线程

参考代码:https://github.com/huangsv/pythonCode/blob/main/thread_demo.py

71062292a2d3f8e15be08bddc93f0f36.png

线程间的消息通信,线程间的消息可以直接通信,但由于线程的不可控性应该使用 锁(Lock) 对数据进行线程保护

参考代码:https://github.com/huangsv/pythonCode/blob/main/lock_demo.py

e58079ed76e240c79868a76980f18d68.png

线程与线程间同样可以使用 queue 队列(import queue)

参考代码:

https://github.com/huangsv/pythonCode/blob/main/thread_queue_demo.py

63dc459f0c88c846c0e4381539fa2b3a.png

协程

Python 由于 GIL 锁的原因导致了多任务的整体优势低于其他如Java等,在此引入协程,目录最常用的大概是 Gevent (注意pip install gevent)

参考代码:

https://github.com/huangsv/pythonCode/blob/main/gevent_demo.py

da49752b7120c75e39046cfaf4596bec.png


进程 线程 协程

  • 由于GIL,多进程能够更好的利用多核CPU,但是,多进程也有其自己的限制:相比线程更加笨重、切换耗时更长,并且在python的多进程下,进程数量不推荐超过CPU核心数(一个进程只有一个GIL,所以一个进程只能跑满一个CPU),因为一个进程占用一个CPU时能充分利用机器的性能,但是进程多了就会出现频繁的进程切换,反而得不偿失。所以多核的情况下,考虑线程数与 CPU核心数相同的多线程,充分利用CPU的多核能力。

  • 由于GIL,多线程同时一时刻,只有一个线程在运行,其他线程只能等待,即使是多核CPU。其执行方式为 获取GIL -> 执行代码(sleep或者程序挂起)-> 释放GIL;什么时候GIL被释放呢?当一个线程遇到 I/O 任务时,将释放GIL。计算密集型(CPU-bound)线程执行 100 次解释器的计步(ticks)时(计步可粗略看作 Python 虚拟机的指令),也会释放 GIL。

    • 多线程对于 CPU密集型代码,如循环,计数等不太友好

    • 多线程对 IO密集型,如文件处理,爬虫等 能够有效提升效率

  • 协程是一种用户级的轻量线程,拥有自己的寄存器和栈,不管是进程还是线程,每次阻塞、切换都需要陷入系统调用(system call),先让CPU跑操作系统的调度程序,然后再由调度程序决定该跑哪一个进程(线程)。而且由于抢占式调度执行顺序无法确定的特点,使用线程时需要非常小心地处理同步问题,而协程完全不存在这个问题(事件驱动和异步程序也有同样的优点)。因为协程是用户自己来编写调度逻辑的,对CPU来说,协程其实是单线程,所以CPU不用去考虑怎么调度、切换上下文,这就省去了CPU的切换开销,所以协程在一定程度上又好于多线程。

http://www.lbrq.cn/news/8425.html

相关文章:

  • 做网站一般要了解哪些/pr的选择应该优先选择的链接为
  • 南宁app开发/优化推广什么意思
  • 网站建站好处/合肥网络优化公司有几家
  • 临沂专业做网站/湖南seo优化哪家好
  • 永久免费仓库出入库管理软件/重庆seo技术分享
  • 荆门哪里做网站/百度如何精准搜索
  • 响应式网站建设制作需要注意什么/怎么把平台推广出去
  • 动态网站开发属于哪种模式/温州seo推广外包
  • 网站页面多少/如何写市场调研报告
  • 天津网站建设 seo/网站推广的平台
  • 专业网站优化案例/苏州关键词seo排名
  • 傻瓜式在线做网站/百度网址安全中心怎么关闭
  • 国外 设计公司手机网站/巨量引擎
  • p2p金融网站开发/安徽网络推广
  • wordpress卡通主题/信阳seo
  • 网站建设就业/百度怎么搜索网址打开网页
  • 用wordpress做网站/近期国内热点新闻事件
  • 武汉大型网站制作/如何制作自己的网站?
  • 网站建设 seo结构/百度电脑版官网
  • 做汽配的都上什么网站/北京seo推广外包
  • asp网站有哪些/现在最好的免费的建站平台
  • 网站设计做多宽/上海牛巨微seo
  • 做卡通的素材网站/搜客通
  • 做海淘网站赚钱吗/色盲测试卡
  • 电子商务网站建设步骤/竞价网络推广托管
  • 国外素材设计欣赏网站/站长工具 seo综合查询
  • 国家对网站建设政策/seo排名规则
  • 网站权重不够高 导致/推广seo优化公司
  • 网站开发需要的所有技术/网站建设公司哪个好呀
  • 做兼职用哪个网站好/有哪些平台可以做推广
  • strlen 函数的使用与模拟实现
  • 云原生俱乐部-shell知识点归纳(1)
  • ts 引入类型 type 可以省略吗
  • 【实时Linux实战系列】实时平台下的图像识别技术
  • 智慧校园中IPTV融合对讲:构建高效沟通新生态
  • Java -- 用户线程和守护线程--线程同步机制