linux c 多线程终止耗时长的任务,Linux C:从main()返回是否导致多线程应用程序终止?...
是.在现代linux(更重要的是GNU libc的较新版本)中,exit_group是主要返回时使用的系统调用,而不是纯粹的退出. exit_group描述如下:
@H_301_12@
This system call is equivalent to
exit(2) except that it terminates not
only the calling thread,but all
threads in the calling process’s
thread group.
值得注意的是,目前的c标准没有提到线程,所以这个行为不是c具体的,而是特定于你的特定实现.也就是说,当我的主线程终止时,我亲身看到的每个实现都会杀死所有线程.
编辑:值得注意的是,Jonathan Leffler的答案指出,POSIX标准确实指定了这种行为,所以使用pthreads进行线程的应用程序当然是正常的.
编辑:回答关于pthread_detach的跟进.基本上,如果您不加入非脱机线程,则被视为资源泄漏.如果你有一个长时间运行的任务,你不需要“等待”,它只是“结束,当它结束”,那么你应该分离它不会有资源泄漏,当终止没有加入.该手册页面显示以下内容:
@H_301_12@
The pthread_detach() function marks
the thread identified by thread as
detached. When a detached thread
terminates,its resources are
automatically released back to the
system without the need for another
thread to join with the terminated
thread.
所以一个快速而肮脏的答案是:“当你不关心什么时候结束,分开它,如果另一个线程关心它什么时候结束,必须等待它终止,那么不要.
linux c 多线程终止耗时长的任务,Linux C:从main()返回是否导致多线程应用程序终止?...相关推荐
- linux如何记录测试时长,如何测试Linux命令运行时间?
如何测试Linux命令运行时间? 良许在工作中,写过一个 Shell 脚本,这个脚本可以从 4 个 NTP 服务器轮流获取时间,然后将最可靠的时间设置为系统时间. 因为我们对于时间的要求比较高,需要在 ...
- java 多线程 返回值_JAVA多线程实现和应用总结:如何使用有返回值的多线程
最近在做代码优化时学习和研究了下JAVA多线程的使用,看了菜鸟们的见解后做了下总结. 1.JAVA多线程实现方式 JAVA多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用E ...
- 在Java中如何准确定位耗时长的方法
场景说明 我是在使用Spark的时候出现某个task一直不结束或者尤其慢的问题,一开始猜测是数据倾斜问题,后来发现是某类数据会导致在调用正则匹配时出现耗时特别长的情况. 定位思路 使用Arthas的p ...
- linux 开放1701端口,长连接及Linux 查看长连接端口
长连接及Linux 查看长连接端口 [日期:2009-02-10] 来源:Linux公社 作者:Linuxidc [字体:大 中 小] unix 3 [ ] 流 ...
- 【优化SQL Server循环更新、插入耗时长的问题】
一: 工作当中遇到更新较多数据时,使用循环(while,或游标)进行增删改时,特别费时 WHILE @i <= @rows BEGIN SELECT @appNo = AppNumber, @r ...
- linux系统文件复制过程时长,Linux系统I/O操作与零拷贝
Linux系统I/O Linux中传统的I/O操作是一种缓存I/O,I/O过程中产生的数据传输通常需要在缓冲区中进行多次拷贝.当应用程序需要访问某个数据(read()操作)时,操作系统会先判断这块数据 ...
- EasyExcel第一次导出文件耗时长的问题
问题表现 在使用Easyexcel进行excel文件导出时,遇到了一个问题:程序启动后,第一次执行导出时耗时非常久,哪怕只有个位数的记录. 原因挖掘 通过追踪代码执行耗时情况,定位到是EasyExce ...
- 多线程编程定长线程池
多线程编程 定长线程池,可控制线程最大并发数,超出的线程会在队列中等待 Executors的方式创建定长线程池(不推荐容易,容易内存溢出OOM) ThreadPoolExecutor构造函数创建定长线 ...
- 详情讲述Linux网络编程关注的问题丨epoll原理丨reactor模型丨三次挥手丨四次握手丨多线程丨单线程丨C/C++Linux丨C++后端开发
90分钟搞懂linux网络编程关注的问题 1. 三次挥手,四次握手 2. epoll实现原理剖析 3. reactor模型封装 单线程.多线程以及多进程 视频讲解如下,点击观看: 详情讲述Linux网 ...
最新文章
- 当代的设计潮流是什么_当代流行的设计元素
- 右脑编程法--左脑是基础(4)之语言篇
- VTK:网格之CapClip
- Kafka Producer拦截器
- View的事件分发机制简述
- 动态照片墙 python 实现_利用python生成照片墙的示例代码
- C#与Matlab混合编程中遇到的“MathWorks.MATLAB.NET.Arrays.MWNumericArray”的类型初始值设定项引发异常。
- vs 生成com组件 其他电脑_VS也可以这样进行快捷安装
- MySQL统计信息收集
- 2018国庆雅礼D3T1
- 手机中必备的黑科技App,个个好用至极,现在的你一定需要
- JAVA面试个人简历模板 ——(2022年最新版)
- 侠客工具盒 v5.0 build 0313 bt
- matlab双线性插值双三次插值对CUFED5进行处理
- vscode 上使用 SDCC 工具链开发 8051(DHT11温湿度传感器示例)
- “刘畊宏女孩”掀起居家云健身热潮,海外健身市场引流变现新方向?
- ubuntu20.04基础入门日记V1.0
- LeetCode-70. 爬楼梯(java)
- 电信行业相关指标(DOU、MOU、ARPU、ARPM)与词汇
- Android/Linux 子系统Graphics图形栈入门普法介绍
热门文章
- Matrix Factorization: A Simple Tutorial and Implementation in Python
- Spark: sortBy和sortByKey函数详解
- day25 java的集合(2)collection
- 页面中鼠标触碰字体后切换颜色且随鼠标移走后改变
- idea中Tomcat启动乱码问题
- python grid函数_(转)Python Tkinter Grid布局管理器详解
- wxpython中文手册 官方版_wxPython API参考手册.chm
- mysql 批量删除_Python接口测试之对MySQL的增、删、改、查操作(五)
- pytest测试框架4-插件与hook函数
- php mysql百万级数据_PHP+MySQL百万级数据插入的优化