Linux _pthread 属性的控制
2016-04-02 04:29
225 查看
线程的属性控制
问题
某些情况下,子线程创建并运行后,不需要返回到主线程。
main2.c
解决方案:
把该子线程设置为“脱离线程”
脱离线程的设置
1) 方式1
在创建该线程时,设置该线程的属性。 即:
—————————————————————————-
/* 定义一个线程属性 attribute */
pthread_attr_t attr;
2)方式2
使用pthread_detach函数。
例如:pthread_detach(thread);
注意:使用pthread_join对脱离线程无效!
注意:线程始终依附于所在的进程。
当进程中的主线程结束时,该进程也就结束了,
此时,该进程的所有子线程都将被迫结束。
所以在主线程要么始终不结束,要么用pthread_join,否则主线程结束后将导致所有其他线程都结束。
其他线程属性的控制(一般都使用默认属性)
pthread_attr_setschedpolicy 设置线程的调度方式
pthread_attr_setstacksize 设置线程的栈大小
main2.c
问题
某些情况下,子线程创建并运行后,不需要返回到主线程。
main2.c
解决方案:
把该子线程设置为“脱离线程”
脱离线程的设置
1) 方式1
在创建该线程时,设置该线程的属性。 即:
—————————————————————————-
/* 定义一个线程属性 attribute */
pthread_attr_t attr;
/* 初始化该属性 */ pthread_attr_init(&attr); /* 设置该线程的脱离属性 */ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); ---------------------------------------------------------------------------- /* 使用这个属性创建新线程 */ pthread_create(&thread, &attr, handle, &arg);
2)方式2
使用pthread_detach函数。
例如:pthread_detach(thread);
注意:使用pthread_join对脱离线程无效!
注意:线程始终依附于所在的进程。
当进程中的主线程结束时,该进程也就结束了,
此时,该进程的所有子线程都将被迫结束。
所以在主线程要么始终不结束,要么用pthread_join,否则主线程结束后将导致所有其他线程都结束。
其他线程属性的控制(一般都使用默认属性)
pthread_attr_setschedpolicy 设置线程的调度方式
pthread_attr_setstacksize 设置线程的栈大小
main2.c
线程的属性控制 1. 问题 某些情况下,子线程创建并运行后,不需要返回到主线程。 main2.c 解决方案: 把该子线程设置为“脱离线程” 2. 脱离线程的设置 1) 方式1 在创建该线程时,设置该线程的属性。 即: ---------------------------------------------------------------------------- /* 定义一个线程属性 attribute */ pthread_attr_t attr; /* 初始化该属性 */ pthread_attr_init(&attr); /* 设置该线程的脱离属性 */ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); ---------------------------------------------------------------------------- /* 使用这个属性创建新线程 */ pthread_create(&thread, &attr, handle, &arg); 2)方式2 使用pthread_detach函数。 例如:pthread_detach(thread); 注意:使用pthread_join对脱离线程无效! 注意:线程始终依附于所在的进程。 当进程中的主线程结束时,该进程也就结束了, 此时,该进程的所有子线程都将被迫结束。 所以在主线程要么始终不结束,要么用pthread_join,否则主线程结束后将导致所有其他线程都结束。 3. 其他线程属性的控制(一般都使用默认属性) pthread_attr_setschedpolicy 设置线程的调度方式 pthread_attr_setstacksize 设置线程的栈大小
相关文章推荐
- Linux_ pthread 线程的取消
- Linux _条件变量
- linux 安装Python 包
- Linux用户和用户组管理
- Linux中Shutdown命令实现定时自动关机 ---fwqlzz love is for ever
- 如何用LINUX命令格式化U盘 ---fwqlzz love is for ever
- linux kernel current宏
- linux的ACL
- Linux中搭建SVN服务器
- cmake记坑帖
- Linux中export导入环境变量的几种方式
- CentOS6.7网卡配置及常见问题(linux ip配置)
- deepin使用串口工具的使用方法
- Linux中vim编辑器莫名下方出现H的问题
- Linux系统如何创建一个新进程
- 编写Linux中sh文件执行时出现莫名字符的问题
- python在linux上的GUI无法弹出界面
- python在linux上的GUI无法弹出界面
- Installing ZFS RAID-Z on CentOS 6.6 with SSD
- linux lidb 安装