![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程编程
我云的博客
云里看雾,雾却不是雾
展开
-
多线程编程——读写锁
一、什么是读写锁 读写锁(也叫共享-独占锁)实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。这种锁相对于自旋锁而言,能提高并发性,因为在多处理器系统中,它允许同时有多个读者来访问共享资源,最大可能的读者数为实际的逻辑CPU数。写者是排他性的,一个读写锁同时只能有一个写者或多个读者(与CPU数相关),但不能同时既有读者又有写...原创 2018-12-12 14:42:10 · 213 阅读 · 0 评论 -
多线程编程——屏障
屏障是多线程同步的一种方法。barrier意为屏障或者栏杆,把先后到达的多个线程挡在同一栏杆前,直到所有线程到齐,然后撤下栏杆同时放行。先到达的线程将会阻塞,等到所有调用pthread_barrier_wait()函数的线程(数量等于屏障初始化时指定的count)都到达后,这些线程才会由阻塞状态进入就绪状态再次参与系统调度。屏障是基于条件变量和互斥锁实现的。主要操作包括:调用pthread_ba...原创 2018-12-12 15:52:28 · 1285 阅读 · 0 评论 -
多线程编程——创建线程
#include <pthread.h> #include <unistd.h> #include <stdio.h> /* 线程控制块 */ static pthread_t tid1; static pthread_t tid2; /* 函数返回值检查 */ static void check_result(ch原创 2018-12-11 16:35:06 · 138 阅读 · 0 评论 -
多线程编程——线程分离状态之detached
#include <pthread.h> #include <unistd.h> #include <stdio.h> /* 线程控制块 */ static pthread_t tid1; static pthread_t tid2; /* 函数返回值检查 */ static void check_result(char* str,int result) { ...原创 2018-12-11 16:41:50 · 715 阅读 · 0 评论 -
多线程编程——线程连接join
#include <pthread.h> #include <unistd.h> #include <stdio.h> /* 线程控制块 */ static pthread_t tid1; static pthread_t tid2; /* 函数返回值检查 */ static void check_result(char* str,int result) { ...原创 2018-12-11 16:45:26 · 244 阅读 · 0 评论 -
多线程编程——互斥量
#include &lt;pthread.h&gt; #include &lt;unistd.h&gt; #include &lt;stdio.h&gt; /* 线程控制块 */ static pthread_t tid1; static pthread_t tid2; /* 函数返回值检查 */ static void check_result(char* str,int result) {原创 2018-12-11 16:51:32 · 482 阅读 · 0 评论 -
多线程编程——条件变量
#include &lt;pthread.h&gt; #include &lt;stdlib.h&gt; #include &lt;unistd.h&gt; #include &lt;stdio.h&gt; /* 静态方式初始化一个互斥锁和一个条件变量 */ static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;原创 2018-12-11 16:54:29 · 199 阅读 · 0 评论