线程同步

线程安全

所谓线程安全,就是在多线程执行时不会出现不确定的结果。

那么对于线程不安全的情况如何处理呢,这个就需要线程同步的操作来。在linux是通过锁来保证的,锁分为以下几种:

1.互斥锁:对共享的资源进行独占,当当前共享的资源没有加锁时,可以对共享资源加锁,当加锁之后其他线程如果想使用就会被阻塞,直到共享资源解锁。

2.读写锁:对于共享资源可以有多个读锁,但时只能有一个写锁。

3.条件变量:一般和互斥量一块使用,允许线程以无竞争读方式等待特定的条件发生。条件本身是由互斥量保护大。

4.自旋:自旋锁和互斥量类似,但它不是通过休眠使进程阻塞的,而是在获取锁之前一直处于忙等阻塞状态

4.屏障:屏障允许每个线程等待,直到所有的合作线程都达到某一个点,然后从该点继续执行。

你可能感兴趣的:(线程同步)