Linux多线程实例练习 - pthread_exit() 与 pthread_join()-阿里云开发者社区

开发者社区> 范大脚脚> 正文

Linux多线程实例练习 - pthread_exit() 与 pthread_join()

简介:
+关注继续查看

Linux多线程实例练习 - pthread_exit 与 pthread_join

pthread_exit():终止当前线程

void pthread_exit(void* retval);

pthread_join():阻塞当前的线程,直到另外一个线程运行结束

int pthread_join(pthread_t thread, void **retval);

 

1、代码  xx_pthread_exit.c

复制代码
 1 #include <pthread.h>
 2 #include <stdio.h>
 3 #include <unistd.h>
 4 
 5 #define debug_Msg(fmt, arg...)\
 6     do{\
 7         printf("%s %d : ", __FILE__, __LINE__);\                                                     
 8         printf(fmt, ##arg);\
 9     }while(0)
10 
11 void * doPrint(void *arg)
12 {
13     debug_Msg("%s\n", (char*)arg);
14     char * p = "thread is over";
15     pthread_exit(p);
16 }
17 int main()
18 {
19     pthread_t pid;
20     char * pt = "hello pthread";
21     pthread_create(&pid, NULL, doPrint, pt);
22     void * p = NULL;
23     pthread_join(pid, &p);
24     debug_Msg("return of thread : [%s]\n", (char*)p);
25     
26     return 0;
27 }
复制代码

2、CentOS 下编译通过

g++ -g -c -o xx_pthread_exit.o xx_pthread_exit.c 
g++ -g -o xx_pthread_exit xx_pthread_exit.o -lpthread

3、运行结果

$ ./xx_pthread_exit 
xx_pthread_exit.c 13 : hello pthread
xx_pthread_exit.c 24 : return of thread : [thread is over]

 


本文转自郝峰波博客园博客,原文链接:http://www.cnblogs.com/fengbohello/p/4258917.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux下多线程编程遇到的一些问题
今天在学习了Linux的多线程编程的基础的知识点。于是就试着做了一个简单的Demo。本以为会得到预期的结果。不成想却遇到了意想不到的问题。 代码展示 我的C 代码很简单,就是一个简单的示例程序,如下: #include #include #include i...
719 0
【Python数据挖掘课程】五.线性回归知识及预测糖尿病实例
今天主要讲述的内容是关于一元线性回归的知识,Python实现,包括以下内容: 1.机器学习常用数据集介绍 2.什么是线性回顾 3.LinearRegression使用方法 4.线性回归判断糖尿病 同时这篇文章是我上课的内容,所
4156 0
C# WinForm多线程开发(一) Thread类库
原文地址:点击打开链接 [摘要]本文介绍C# WinForm多线程开发之Thread类库,并提供简单的示例代码供参考。 Windows是一个多任务的系统,如果你使用的是windows 2000及其以上版本,你可以通过任务管理器查看当前系统运行的程序和进程。什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又
1035 0
Thread和Runnable实现多线程(一)下
Thread和Runnable实现多线程(一)
6 0
多线程编程(一) - 关于C#中Thread.Join()
Thread.Join()在MSDN中的解释很模糊:Blocks the calling thread until a thread terminates 有两个主要问题:1.什么是the calling thread?                        2.
974 0
在JAVA中使用DCL双检查锁机制实现单例的多线程安全
元旦放假期间学代码,我都感动我自己啦。
1508 0
如何让您的php也支持pthreads多线程
  我们常常会碰到这样一种情况,开发环境在windows下开发,而生产环境确是linux。windows下能正常运行,上传到linux后却无法好好地玩耍了。然后开始了一轮尼玛式的疯狂的查找原因,最后发现是服务器环境问题。
1076 0
01.Java基础(多线程回顾,对比Linux多线程)
两个线程间通信,实现交替打印 public class Thread1 { public static void main(String[] args) { final Printer printer = new Printe...
612 0
+关注
3656
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载