linux系统进程后台运行时为什么线程函数不执行,只有调到前台才能运行

C++语言 码拜 8年前 (2016-09-22) 1872次浏览
本人写的一个linux下的软件,使用了多线程。以前一直都是在shell中使用./myprocess 方式运行进程。最近几天需要把进程以服务方式运行,结果遇到了问题。测试发现,在shell中以./myprocess &方式启动进程,并使之后台运行,可发现程序运行时执行pthread_create函数调用线程函数时,线程函数无法运行。pthread_create函数返回0,说明线程启动成功。本人在线程函数中加上了cout打印信息,也加了log4cplus日志,这些打印信息和日志都不输出,做了一些测试发现程序貌似没有进入到线程函数中。当使用fg %n将该进程调整到前台后,打印信息和日志都开始输出了,程序正常运行。很奇怪,问题出在哪里呢?请大家给指点一下。
解决方案

10

bg %n试试

10

感觉不存在你说的问题,本人好多程序都是后台运行的,(你试试把线程放在fork()子进程中运行不运行)

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明linux系统进程后台运行时为什么线程函数不执行,只有调到前台才能运行
喜欢 (0)
[1034331897@qq.com]
分享 (0)