linux下怎样实现WaitForSingleObject的功能

 我来答
匿名用户
推荐于2019-01-23
展开全部
  windows的WaitForSingleObject这个接口超级混乱,
等线程用 pthread_join,
等semphore用 sem_wait
等mutex用 pthread_mutex_lock
windows偏要做大而全, 让人很无奈.
雨中旳星辰
2016-01-30 · TA获得超过230个赞
知道小有建树答主
回答量:247
采纳率:75%
帮助的人:71.2万
展开全部
Windows中的WaitForSingleObject()函数对应在Linux中的sem_wait(),SetEvent对应sem_post(),
参考下面的Linux程序:
#include
#include
#include
#include
#include
#include
char tem[10]; //读写公共区
sem_t sem;
void* thread_fun(void*);
int main()
{
int counter=0;
pthread_t mythread;
sem_init(&sem,0,0);
pthread_create(&mythread,NULL,thread_fun,NULL);
while(counter<10) //往读写区里写10次'f'
{
tem[counter]='f';
counter++;
sem_post(&sem);
}
pthread_join(mythread,NULL); //等待子线程
sem_destroy(&sem);
exit(0);
}
void* thread_fun(void* arg) //子线程函数
{
int counter=0;
while(counter<10&&sem_wait(&sem)==0)
{
printf("%c",tem[counter]); //读出来显示
counter++;
//sem_wait(&sem);
}
pthread_exit(NULL);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式