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

第十二章《并发编程》

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

    基于进程的并发编程

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

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

    优点:

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

    缺点:

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

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

    优点:

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

    缺点:

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

    基于线程的并发模型

    属于上述两种方式的混合

    并发问题

    包括:

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

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

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

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

    相关文章

      网友评论

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

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