《linux下的C语言开发(多线程编程).pdf》由会员分享,可在线阅读,更多相关《linux下的C语言开发(多线程编程).pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本文由长春白癜风专科医院 http:/ 本文长春白癜风专科医院 http:/ linux 下的下的 C 语言开发(多线程编程)语言开发(多线程编程)多线程和多进程还是有很多区别的。其中之一就是,多进程是 linux 内核本身所支持的,而多线程则需要相应的动态库进行支持。对于进程而言,数据之间都是相互隔离的,而多线程则不同,不同的线程除了堆栈空间之外所有的数据都是共享的。说了这么多,我们还是自己编写一个多线程程序看看结果究竟是怎么样的。cpp view plaincopy 1.#include 2.#include 3.#include 4.#include 5.6.void func_1(vo
2、id*args)7.8.while(1)9.sleep(1);10.printf(this is func_1!n);11.12.13.14.void func_2(void*args)15.16.while(1)17.sleep(2);18.printf(this is func_2!n);19.20.21.本文由长春白癜风专科医院 http:/ 本文长春白癜风专科医院 http:/ 22.int main()23.24.pthread_t pid1,pid2;25.26.if(pthread_create(&pid1,NULL,func_1,NULL)27.28.return-1;29.3
3、0.31.if(pthread_create(&pid2,NULL,func_2,NULL)32.33.return-1;34.35.36.while(1)37.sleep(3);38.39.40.return 0;41.和我们以前编写的程序有所不同,多线程代码需要这样编译,输入 gcc thread.c-o thread-lpthread,编译之后你就可以看到 thread 可执行文件,输入./thread 即可。cpp view plaincopy 1.testlocalhost Desktop$./thread 2.this is func_1!3.this is func_2!4.th
4、is is func_1!本文由长春白癜风专科医院 http:/ 本文长春白癜风专科医院 http:/ 5.this is func_1!6.this is func_2!7.this is func_1!8.this is func_1!9.this is func_2!10.this is func_1!多线程和多进程还是有很多区别的。其中之一就是,多进程是 linux 内核本身所支持的,而多线程则需要相应的动态库进行支持。对于进程而言,数据之间都是相互隔离的,而多线程则不同,不同的线程除了堆栈空间之外所有的数据都是共享的。说了这么多,我们还是自己编写一个多线程程序看看结果究竟是怎么样的。
5、cpp view plaincopy 1.#include 2.#include 3.#include 4.#include 5.6.void func_1(void*args)7.8.while(1)9.sleep(1);10.printf(this is func_1!n);11.12.13.14.void func_2(void*args)15.16.while(1)本文由长春白癜风专科医院 http:/ 本文长春白癜风专科医院 http:/ 17.sleep(2);18.printf(this is func_2!n);19.20.21.22.int main()23.24.pthre
6、ad_t pid1,pid2;25.26.if(pthread_create(&pid1,NULL,func_1,NULL)27.28.return-1;29.30.31.if(pthread_create(&pid2,NULL,func_2,NULL)32.33.return-1;34.35.36.while(1)37.sleep(3);38.39.40.return 0;41.和我们以前编写的程序有所不同,多线程代码需要这样编译,输入 gcc thread.c-o thread-lpthread,编译之后你就可以看到 thread 可执行文件,输入./thread 即可。cpp view plaincopy 本文由长春白癜风专科医院 http:/ 本文长春白癜风专科医院 http:/ 1.testlocalhost Desktop$./thread 2.this is func_1!3.this is func_2!4.this is func_1!5.this is func_1!6.this is func_2!7.this is func_1!8.this is func_1!9.this is func_2!10.this is func_1!