永发信息网

哪位推荐下学习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:
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯