进程:资源单位,由操作系统控制调度。正在执行的一个程序或者过程,进程之间不共享资源,进程间通讯手段:管道,队列,信号量等。多用于计算密集型场景,如金融计算

线程:是cpu的最小执行单位,由操作系统控制调度。一个进程至少有一个线程,同一个进程里面的多个线程共享该进程的内存资源(此处会涉及到资源的抢夺),因此需要用到“锁”,来防止资源争抢而导致的死锁等问题,创建线程的开销远远小于创建进程的开销。适用场景:IO密集型,如socket。

协程:实现单线程的并发,由用户自己通过程序来实现控制调度。修改共享数据不需要加锁,切换开销小,更加轻量级。缺点:本质是单线程下的并发,无法利用多核,可以考虑多进程+协程。

最新文章

  1. redis 操作 list 的测试
  2. android studio building project info 错误
  3. [vijos P1035] 贪婪的送礼者
  4. eclipse发布项目时,会自动还原server.xml和content.xml文件
  5. IP地址在数据库里面的存储方式
  6. js获取各种宽高方法
  7. MYSQL中的SELECT查询时进行运算
  8. Javascript中的一种深复制实现
  9. python 遍历删除日志
  10. 用SecureCRT来上传和下载数据
  11. BMS 项目过程中遇到的问题
  12. iOS开发——扫描二维码——工具类
  13. Error:Execution failed for task ':app:mergeDebugResources'. > Some file crunching failed, see logs for details
  14. CSS页面渲染优化属性will-change
  15. 数据结构基础(3) --Permutation & 插入排序
  16. python基础3、4---流程控制、运算符
  17. 3.4 unittest之装饰器(@classmethod)
  18. python模块_多重继承的MRO
  19. Redis 主从 keepalived高可用 实现 VIP 自动漂移
  20. hdu3397区间覆盖,区间翻转,区间合并,区间求和

热门文章

  1. IIS 支持 m3u8
  2. Python学习计划
  3. Doctrine2-完整创建数据库
  4. 使用httpclient访问NLP应用接口例子
  5. Python WMI获取Windows系统信息
  6. 第八篇 Flask配置
  7. ng表单验证
  8. sqlite3使用总结(转并且修改)
  9. JavaScript Dom级别
  10. [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project triage: Compilation failure [ERROR] No compiler is provided in this environment.