哲学家吃饭
来源:互联网 发布:java如何合并两个list 编辑:程序博客网 时间:2024/03/29 21:49
#include <stdio.h>#include <pthread.h>#include <unistd.h>struct chops{ int id; pthread_mutex_t *left, *right;};void *philosopher(void * arg){ struct chops * p = arg; while(1){ pthread_mutex_lock(p->left); printf("%d:left\n",p->id); pthread_mutex_lock(p->right); printf("%d:right\n",p->id); pthread_mutex_unlock(p->right); pthread_mutex_unlock(p->left); printf("%d:unlock\n",p->id); }}#define PMI PTHREAD_MUTEX_INITIALIZERint main(void){ pthread_t id[5]; pthread_mutex_t mutex[5]={PMI,PMI,PMI,PMI,PMI}; struct chops chops[5]; int i; for(i=0;i<5;i++){ chops[i].id = i; chops[i].left = &mutex[i]; chops[i].right= &mutex[(i+1)%5]; pthread_create(&id[i] , NULL , philosopher, &chops[i]); }pthread_join(id[0],NULL);return 0;}
0 0
- 哲学家吃饭
- 哲学家吃饭问题
- 死锁—哲学家吃饭问题
- java多线程哲学家思考吃饭问题
- 现代操作系统-5个哲学家吃饭
- 并发多线程之死锁-----哲学家吃饭问题
- 5位哲学家吃饭问题(算法描述)
- 黑马程序员技术博客之哲学家吃饭问题
- 【Java】同步关键字就解决哲学家吃饭问题
- 哲学家吃饭问题 代码实现如何 避免线程死锁
- 哲学家吃饭问题(资源加锁和超时释放)
- 移动端多线程编程高级篇-哲学家吃饭问题
- 爸爸妈妈儿子女儿吃水果问题以及五个哲学家吃饭问题
- 吃饭~~~
- 吃饭
- 吃饭
- 吃饭
- 吃饭
- Search Insert Position
- 二分查找中的死循环
- 数据结构 第一章 绪论
- 归并排序
- 软工——详解白盒测试
- 哲学家吃饭
- gc overhead limit exceeded eclipse解决方案
- 使用queryperf对DNS服务器作压力测试
- C语言-ATM机
- 欢迎光临
- 九度oj-1019-简单计算器
- 【九度OJ】1489【矩阵乘法】【C实现】【哈工大2012】
- HDU_1159 Common Subsequence(最长公共子序列)
- vim tab技巧