线程终结方式
来源:互联网 发布:迅龙数据恢复官网 编辑:程序博客网 时间:2024/06/01 10:29
1.线程的创建有上限吗,如果没有,这个程序为什么会只创建了382个线程就结束了。
LinuxThreads将每个进程的线程最大数目定义为1024,但实际上这个数值还受到整个系统的总进程数限制,这又是由于线程其实是核心进程。
在kernel 2.4.x中,采用一套全新的总进程数计算方法,使得总进程数基本上仅受限于物理内存的大小,计算公式在kernel/fork.c的fork_init()函数中:
max_threads = mempages / (THREAD_SIZE/PAGE_SIZE) / 8
2.当线程结束时(不调用pthread_join)会不会将所有资源释放。
一般来说,调用下面三个函数会保证资源释放:
void pthread_exit(void *retval)
int pthread_join(pthread_t th, void **thread_return)
int pthread_detach(pthread_t th)
也看到网上有人说一般情况下,进程中各个线程的运行都是相互独立的,线程的终止并不会通知,也不会影响其他线程,终止的线程所占用的资源也并不会随着线程的终止而得到释放。
所以还是调用pthread_exit或pthread_join,或者设置为detached属性比较好.
3.如果我同时运行多个线程,如何管理它?
线程池是一种,简单点也可以设计一个专门的清理线程来pthread_join已挂起的线程.
总结:
我是在说对 joinable thread 和 detached thread 之间进行选择的原则。如果需要对一个线程退出的状态进行同步,就必须使用joinable thread;否则,使用 detached thread 可以在一定程度上简化实现和设计。
- 线程终结方式
- 终结者:终止线程循环的方式
- 线程终结
- windows 多线程之终结线程
- 线程池使用终结版
- 线程池使用终结版
- 终结线程的几个方法
- Android线程池使用终结版
- 5.多线程学习--等待线程的终结
- Android线程池使用终结版
- Android线程池使用终结版
- Windows核心编程之线程终结
- Android线程池使用终结版
- Android线程池使用终结版
- Android线程池使用终结版
- boost::thread之while(true)型线程终结方法
- boost::thread之while(true)型线程终结方法
- C语言-windows下进程与线程终结
- 做有效沟通的管理者
- [转]JAVA面试题1
- Solaris下安装部署tomcat
- PHP开发环境搭建
- 最后一版支持VC6的SDK的下载地址
- 线程终结方式
- Flash社交游戏开发攻略连载(一)
- Union 和 Union All 《转》
- 贪心法
- 我们二十三四...
- C语言实现bitmap,取两个数组的交集等操作
- joomla模板下载及安装常见问题
- 模块五 菜单栏、工具栏、状态栏
- Flash社交游戏开发攻略连载(二)——基础控制流1