美文网首页
第十二章《并发编程》

第十二章《并发编程》

作者: ShawnIsACoder | 来源:发表于2019-02-17 19:32 被阅读0次

基于进程的并发编程

构建并发程序最简单的方法就是用进程

进程有独立的地址空间既是优点也是缺点:

优点:

  • 一个进程不可能会覆盖掉另一个进程的虚拟内存

缺点:

  • 独立的地址空间使得共享状态变得困难

基于I/O多路复用的并发编程

优点:

  • 比基于进程的设计给了开发者更多对程序行为的控制
  • 运行在单一的进程上下文中,使得共享数据变得简单

缺点:

  • 编码复杂
  • 不能充分利用多核处理器

基于线程的并发模型

属于上述两种方式的混合

并发问题

包括:

  • 线程安全:需要注意4类线程不安全函数:

    1. 不保护共享变量的函数
    2. 保持跨越多个调用状态的函数
    3. 返回指向静态变量的指针的函数
    4. 调用线程不安全函数的函数
  • 可重入性:指函数被多个线程调用时,不会引用任何共享变量

  • 使用已存在的库函数:标准C库中的函数大部分是线程安全的,有一小部分例外,需要注意

  • 竞争:需要注意多线程的程序必须对任何可行的轨迹线都正确工作,而不只是开发者预想的某种特殊轨迹线

相关文章

网友评论

      本文标题:第十二章《并发编程》

      本文链接:https://www.haomeiwen.com/subject/rvhneqtx.html