zoukankan      html  css  js  c++  java
  • C++线程同步与互斥总结

    互斥:当多个线程访问同一个全局变量,或者同一个资源(比如打印机)的时候,需要进行线程间的互斥操作来保证访问的安全性。

    临界区、互斥体、事件和信号量都可以实现线程互斥.但如果仅仅需要实现互斥功能,推荐前两种。

    两者的区别:
    1、临界区只能用于进程内的线程互斥,性能较好。
    2、互斥体属于内核对象,可以用于进程间的线程互斥,性能较差。
    3、线程在没有正常退出互斥区而意外终结时,互斥体可以复位,但临界区不行.。

    线程同步:当有多个线程同时执行时,可能需要线程按照一定的顺序执行,比如:线程A负责将要处理的数据读取到内存中,而线程B
    负责分析这些数据,此时,应该是线程A执行完毕再执行线程B才有意义,这个时候就需要进行线程的同步控制。

    可以用于线程同步控制的对象:事件和信号量。

    两者的区别:
    1、都是内核对象,使用完毕后应该关闭句柄。
    2、信号量可以用于相当复杂的线程同步控制.。

  • 相关阅读:
    Java Clone
    Java Clone
    Java Clone
    Java Clone
    js数组去重
    js数组去重
    js数组去重
    js数组去重
    bat修改hosts文件
    3个赚钱思路和案例,都是暴利赚钱项目,最后一个你肯定见到过
  • 原文地址:https://www.cnblogs.com/duxie/p/11141075.html
Copyright © 2011-2022 走看看