现在的位置: 首页 > 综合 > 正文

Linux线程同步(1): 概要

2013年05月28日 ⁄ 综合 ⁄ 共 420字 ⁄ 字号 评论关闭

    线程的同步, 发生在多个线程共享相同内存的时候, 这时要保证每个线程在每个时刻看到的共享数据是一致的. 如果每个线程使用的变量都是其他线程不会使用的(read & write), 或者变量是只读的, 就不存在一致性问题. 但是, 如果两个或两个以上的线程可以read/write一个变量时, 就需要对线程进行同步, 以确保它们在访问该变量时, 不会得到无效的值, 同时也可以唯一地修改该变量并使它生效.

    以上就是我们所说的线程同步.

    线程同步有三种常用的机制: 互斥量(mutex), 读写锁(rwlock)和条件变量(cond).

    互斥量有两种状态: lock和unlock, 它确保同一时间只有一个线程访问数据;

    读写锁有三种状态: 读加锁, 写加锁, 不加锁, 只有一个线程可以占有写模式的读写锁, 但是可以有多个线程同时占有读模式的读写锁.

    条件变量则给多个线程提供了一个会合的场所, 与互斥量一起使用时, 允许线程以无竞争的方式等待特定条件的发生.

抱歉!评论已关闭.