zoukankan      html  css  js  c++  java
  • 并发编程(三)

    网络编程(下)

    多线程的作用

    站在两个角度去看问题:

    ==四个任务,计算密集型,每个任务需要10s:==

    单核:

    开启进程

    消耗资源过大

    4个进程:40s

    开启线程

    消耗资源远小于进程

    4个进程:40s

    多核:

    开启进程

    并行执行,效率比较高

    4个进程10S

    开启线程

    并发执行,执行效率低

    4个线程:40S

    ==四个任务,IO密集型,每个任务需要10s:==

    单核:

    开启进程

    消耗资源过大

    4个进程:40s

    开启线程

    消耗资源远小于进程

    4个线程:40s

    多核:

    开启进程

    并行执行,效率小于多线程,因为遇到IO会立马切换CPU的执行权限

    4个进程:40s + 开启进程消耗的额外时间

    开启线程

    并发执行,执行效率高于多进程

    4个线程:40s

    ==总结==:

    在计算密集型的情况下;使用多进程.

    在IO密集型的情况下;使用多线程

    高效执行多个进程,内多个IO密集型的程序: 使用多进程+多线程

    递归锁

    (了解知识点)

    RLOCK:与比喻成望能钥匙,可以提供给人们使用.

    ​ 但是第一个使用的时候,会对该锁做一个引用计数.

    ​ 只有引用计数为0,才能真正释放让另一个去使用

    信号量

    (了解知识点)

    ​ 互斥锁:比喻成一个家用马桶

    ​ 同时间只能让一个人去使用

    ​ 信号量:比喻成公厕多个马桶.

    ​ 同一时间可以让多个人去使用

    线程队列

    (了解知识点)

    FIFO队列:先进先出

    LIFO队列:后进先出

    优先级队列:根据参数内,数字的大小进程分级,数字值越小,优先级越高(可参照ASCLL码表)

    我把月亮戳到天上 天就是我的 我把脚踩入地里 地就是我的 我亲吻你 你就是我的
  • 相关阅读:
    chrome rpm旧版本下载地址
    windows 静态绑定arp
    ubuntu20开机自动打开浏览器全屏访问指定页面
    nginx+uwsgi+django+systemd部署django项目
    openresty编译安装
    windows服务器设置定时重启
    华为云和AWS之间打通内网
    python glob
    python subprocess
    python 异常
  • 原文地址:https://www.cnblogs.com/zhulipeng-1998/p/12863934.html
Copyright © 2011-2022 走看看