zoukankan      html  css  js  c++  java
  • 并发并行,同步异步,阻塞非阻塞,IO多路复用解释

    并发、并行

    并发:是指一个时间段内,有几个程序在同一个CPU上运行,但是任意时刻只有一个程序在CPU上运行。由于CPU的运行速度极快,可以在多个程序之间切换,这样造成一个假象就是多个程序同时在运行。
    并行:是指任意时刻点上,有多个程序同时运行在多个CPU上。并行的数量与CPU的核心数一致,即CPU为4核,并行数量最多为4。

    同步、异步

    同步:是指代码调用IO操作时,必须等待IO操作完成才返回的调用方式。
    异步:是指代码调用IO操作时,不必等待IO操作完成就返回的调用方式。

    阻塞、非阻塞

    阻塞:是指调用函数的时候当前线程被挂起。
    非阻塞:是指调用函数的时候当前线程不会被挂起,而是立即返回。

    IO多路复用

    select,poll,epoll都是IO多路复用的机制,但三者本质上都是同步IO,因为他们都需要在读写事件就绪后自己负责读写,也就是说这个读写过程是阻塞的,而异步IO则无需自己负责读写,异步IO的实现会负责把数据从内核拷贝到用户空间。
    相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件符管理多个文件描述符,将用户关系的文件描述的事件存放到内核的一个事件表中,这样在用户空间和内和空间的copy只需要一次。
    epoll并不代表一定比select好
    在高并发的情况下,连接活跃度不是很高,epoll比select好
    在并发不高的情况下,同时连接很活跃,select比epoll好

  • 相关阅读:
    linux使用shell执行一个Python文件
    shell编程
    mysql之通过cmd连接远程数据库
    单词辨析
    安全测试
    Linux下使用crontab执行一个shell脚本
    重新梳理Linux系统中Python环境的问题
    selenium 定位元素不稳定怎么解决?
    爬虫数据分析的前景
    Linux下部署python selenium UI自动化测试
  • 原文地址:https://www.cnblogs.com/gaodi2345/p/11671518.html
Copyright © 2011-2022 走看看