哪位推荐下学习Linux 多线程/多进程编程的书籍
答案:2 悬赏:10 手机版
解决时间 2021-02-04 01:53
- 提问者网友:动次大次蹦擦擦
- 2021-02-03 16:05
哪位推荐下学习Linux 多线程/多进程编程的书籍
最佳答案
- 五星知识达人网友:独行浪子会拥风
- 2021-02-03 17:17
近在linux做东西用到来多线程/多进程,但是,由于以前没有接触写过这方面的代码,感觉非常吃力,也想借此机会好好的学习下Linux下的多线程编程,请问有
全部回答
- 1楼网友:由着我着迷
- 2021-02-03 18:06
程序代码test.c共两个线程,一个主线程,一个读缓存区的线程:
#include
#include
#include
#include
#include
char globe_buffer[100];
void *read_buffer_thread(void *arg); //这里先声明一下读缓存的线程,具体实现写在后面了
int main()
{
int res,i;
pthread_t read_thread;
for(i=0;i<20;i++)
globe_buffer[i]=i;
printf("\ntest thread : write buffer finish\n");
sleep(3);\\这里的3秒是多余,可以不要。
res = pthread_create(&read_thread, null, read_buffer_thread, null);
if (res != 0)
{
printf("read thread creat error!");
exit(0);
}
sleep(1);
printf("waiting for read thread to finish...\n");
res = pthread_join(read_thread, null);
if (res != 0)
{
printf("read thread join failed!\n");
exit(0);
}
printf("read thread test ok, have fun!! exit byebye\n");
return 0;
}
void *read_buffer_thread(void *arg)
{
int i,x;
printf("read buffer thread read data : \n");
for(i=0;i<20;i++)
{
x=globe_buffer[i];
printf("%d ",x);
globe_buffer[i]=0;//清空
}
printf("\nread over\n");
}
---------------------------------------------------------------------------------
以上程序编译:
gcc -d_reentrant test.c -o test.o –lpthread
运行这个程序:
$ ./test.o:
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯