多线程编程中的竞态条件、互斥锁、效率优化与条件变量使用
1. 竞态条件的产生
竞态条件是指多个线程(或进程)试图同时写入同一个变量的情况。由于无法确定哪个线程会首先访问该变量,所以难以安全地预测会发生什么。多个线程会竞相访问该变量。
要编写一个会产生竞态条件的程序,可按以下步骤操作:
1. 编写代码 :将所有代码放入一个名为 race.c 的文件中。
#include <stdio.h>
#include <pthread.h>
void *add(void *arg);
long long int i = 0;
int main(void)
{
pthread_attr_t threadattr;
pthread_attr_init(&threadattr);
pthread_t tid_add1, tid_add2, tid_add3,
tid_add4, tid_add5;
pthread_create(&tid_add1, &threadattr,
add, NULL);
pthread_create(&tid_add2, &threadattr,
add, NULL);
pthread_create(&tid_add3, &threadattr,
add, NULL);
pthread_create(&tid_add4, &thr
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



