thread 退出状态如何获取
来源:互联网 发布:淘宝查小号信誉 编辑:程序博客网 时间:2024/05/18 00:20
#include <iostream> #include <pthread.h> #include <iostream> #include <pthread.h> using namespace std; #define NUM_THREADS 5 void* say_hello(void* args) { cout << "hello in thread " << *((int *)args) << endl; int status = 10 + *((int *)args);//将参数加10 pthread_exit((void*)status);//由于线程创建时候提供了joinable参数,这里可以在退出时添加退出的信息:status供主程序提取该线程的结束信息; } int main() { pthread_t tids[NUM_THREADS]; int indexes[NUM_THREADS]; pthread_attr_t attr;//要想创建时加入参数,先声明 pthread_attr_init(&attr);//再初始化 pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);//声明、初始化后第三步就是设置你想要指定线程属性参数,这个参数表明这个线程是可以join连接的,join功能表示主程序可以等线程结束后再去做某事,实现了主程序和线程同步功能,这个深层理解必须通过图示才能解释;参阅其他资料吧 for(int i = 0; i < NUM_THREADS; ++i) { indexes[i] = i; int ret = pthread_create( &tids[i], &attr, say_hello, (void *)&(indexes[i]) );//这里四个参数都齐全了,更多的配置仍需查阅资料; if (ret != 0) { cout << "pthread_create error: error_code=" << ret << endl; } } pthread_attr_destroy(&attr);//参数使用完了就可以销毁了,必须销毁哦,防止内存泄露; void *status; for (int i = 0; i < NUM_THREADS; ++i) { int ret = pthread_join(tids[i], &status);//前面创建了线程,这里主程序想要join每个线程后取得每个线程的退出信息status; if (ret != 0) { cout << "pthread_join error: error_code=" << ret << endl; } else { cout << "pthread_join get status: " << (long)status << endl; } } }
0 0
- thread 退出状态如何获取
- sqlite3如何退出...>状态
- newlisp获取bash命令的退出状态
- 如何获取GPS状态
- 如何获取电池状态
- putty 如何退出鼠标选中状态
- 退出状态
- 06 退出 退出状态
- 父进程获取子进程退出状态(1)
- 父进程获取子进程退出状态(2)
- wait获取子进程退出状态 WIFEXITED和WIFSIGNALED用法
- 如何获取算法运行状态
- erlang调用外部程序如何得到其退出状态
- 退出和退出状态码
- 退出和退出状态码
- C#如何获取本地计算机的状态
- [C#]C#如何获取键盘状态
- android 中如何获取camera当前状态
- OVS命令详解
- 8.ARM工作模式和寄存器及异常
- Hive数据导入方案—使用ORC格式存储hive数据
- lintcode: Longest Common Prefix
- eclipse和myeclipse编辑器中代码 “ import="java.sql.* " 报错的解决方案
- thread 退出状态如何获取
- windows(win7,win8,xp)hosts文件找不到原因分析及解决方法
- Android ProgressBar 样式大全
- Java基础------知识点整理(四)-----final关键字
- 迷宫
- hdu1242
- Disruptor:为什么会这么快?(三)揭秘内存屏障
- 趣味编程 - 蛇形数
- C++ 第二次上机实验(作业)