手机版

linux 互斥锁应用实例(2)

发布时间:2021-06-08   来源:未知    
字号:

if (work_area[0] != '\0') //检查读入的内容输出没有

{

pthread_mutex_unlock(&work_mutex); //unlock the mutex如果没有输出,解锁

sleep(1);

}

else

{

break;

}

}

}

pthread_mutex_unlock(&work_mutex);//解锁

printf("\nWaiting for thread to finish...\n");

res = pthread_join(a_thread, &thread_result);//等待另一个线程结束

if (res != 0)

{

perror("Thread join failed");

exit(EXIT_FAILURE);

}

printf("Thread joined\n");

pthread_mutex_destroy(&work_mutex);//销毁互斥锁

exit(EXIT_SUCCESS);

}

void *thread_function(void *arg)

{

sleep(1);

pthread_mutex_lock(&work_mutex);//上锁,抢占资源

while(strncmp("end", work_area, 3) != 0) //判断是不是结束信息end

{

printf("You input %d characters\n", strlen(work_area) -1);//时结束信心的话,就输出输入的字符个数

printf("the characters is %s",work_area);//输出输入的字符内容

work_area[0] = '\0';//设置最后以为为“\0”

pthread_mutex_unlock(&work_mutex);// 输出完成以后就解锁

sleep(1);

pthread_mutex_lock(&work_mutex);//上锁

while (work_area[0] == '\0' ) //判断第一位是不是为\0

{

pthread_mutex_unlock(&work_mutex);//解锁等待

sleep(1);

pthread_mutex_lock(&work_mutex);//上锁再次循环

}

linux 互斥锁应用实例(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)