1005实现一个线程从共享的缓冲区中读数据,另一个线程向共享的缓冲区中写数据

发布时间:2020-07-18 09:54:25 作者:银河星君
来源:网络 阅读:767

/*

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>

#define FALSE 0
#define TRUE 1
void readfun();
void writefun();

char buffer[256];
int buffer_has_item=0;
int retflag=FALSE;
pthread_mutex_t mutex;
int main(int argc, char argv[])
{
pthread_t reader;
pthread_mutex_init(&mutex,NULL);
pthread_create(&reader,NULL,(void
)&readfun,NULL);
writefun();
}
void readfun()
{
while(1)
{
if(retflag)
return;
pthread_mutex_lock(&mutex);
if(buffer_has_item==1)
{
printf("%s",buffer);
buffer_has_item=0;
}
pthread_mutex_unlock(&mutex);
}
}

void writefun()
{
int i=0;
while(1)
{
if(i==10)
{
retflag=TRUE;
return;
}
pthread_mutex_lock(&mutex);
if(buffer_has_item==0)
{
sprintf(buffer,"This is %d\n",i++) ;
buffer_has_item=1;
}
pthread_mutex_unlock(&mutex);
}
}

推荐阅读:
  1. 多线程共享数据
  2. java 多线程-资源共享

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux c linux线程 共享缓冲区

上一篇:解决修改php.ini配置文件无效的方法

下一篇:Spring组件的实现步骤

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》