码迷,mamicode.com
首页 > 其他好文 > 详细

并发一些概念

时间:2017-07-07 20:16:32      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:处理   系统   一个   线程共享数据   程序   信号处理   bsp   不可变   线程调度   

进程之间通讯用什么:

  套接字、信号处理器、共享内存、信号量、文件。

线程之间通讯用什么:

线程的好处:

  降低开发维护成本,提高程序性能,提高资源利用率和系统吞吐量。

线程带来的风险:

线程安全问题:永远不要发生糟糕的事情

线程的活跃性问题:某件正确的事情最终会发生。比如,死锁 饥饿 活锁(不明白)

性能问题:

  上下文切换开销:

    保存和恢复上下文

    丢失局部性

    cpu化时间在线程调度

    线程共享数据时,必须同步,会抑制编译器优化,使内存缓冲区数据失效,增加共享内存总线同步流量。

同步方式:

  synchronized

  volatile

  Explicit Lock

  原子变量

同步问题的解决方式:

  不在线程之间共享状态变量

  将状态变量修改位不可变变量

  在访问状态变量时使用同步

竞态条件:

  不恰当的执行时序而出现不正确的结果叫做竞态条件,Race Condition。

  当某个计算的正确性取决于多个线程交替执行的时序时,就会发生竞态条件。

  常见的竞态条件类型就是先检查后执行(check-then-act),通过一个可能失效的观测结果(重点是这个)来决定下一步的动作的情况。

 

并发一些概念

标签:处理   系统   一个   线程共享数据   程序   信号处理   bsp   不可变   线程调度   

原文地址:http://www.cnblogs.com/gengsc/p/7133616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!