- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本文由长春白癜风专科医院 / 收集,转载请注明出处
linux 下的C 语言开发(多线程编程)
多线程和多进程还是有很多区别的。其中之一就是,多进程是linux 内核本
身所支持的,而多线程则需要相应的动态库进行支持。对于进程而言,数据之间
都是相互隔离的,而多线程则不同,不同的线程除了堆栈空间之外所有的数据都
是共享的。说了这么多,我们还是自己编写一个多线程程序看看结果究竟是怎么
样的。
[cpp] view plaincopy
1. #include stdio.h
2. #include pthread.h
3. #include unistd.h
4. #include stdlib.h
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){
17. sleep(2);
18. printf(this is func_2!\n);
19. }
20. }
21.
本文长春白癜风专科医院 / 收集,转载请注明出处
本文由长春白癜风专科医院 / 收集,转载请注明出处
22. int main()
23. {
24. pthread_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
1. [test@localhost 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!
多线程和多进程还是有很多区别的。其中之一就是,多进程是linux 内核本身
所支持的,而多线程则需要相应的动态库进行支持。对于进程而言,数据之间都
是相互隔离的,而多线程则不同,不同的线程除了堆栈空间之外所有的数据都是
共享的。说了这么多,我们还是自己编写一个多线程程序看看结果究竟是怎么样
的。
[cpp] view plaincopy
1. #include stdio.h
2. #include pthread.h
文档评论(0)