加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 为什么我看到的帖子多于我在`ps`列表中创建的数字?

发布时间:2020-12-13 23:02:20 所属栏目:Linux 来源:网络整理
导读:当我从主进程创建一个线程(pthread_create())时,我在ps列表中看到三(3)个线程,为什么会这样?也就是说,我看到主线程的进程,一个用于创建的线程,第三个用于其他东西.什么是别的?一切正常,我只是想知道额外列出的流程是什么. ~/ cat test.c#include errno.h#i
当我从主进程创建一个线程(pthread_create())时,我在ps列表中看到三(3)个线程,为什么会这样?也就是说,我看到主线程的进程,一个用于创建的线程,第三个用于其他东西.什么是别的?一切正常,我只是想知道额外列出的流程是什么.

~/ cat test.c
#include <errno.h>
#include <pthread.h>
static          pthread_t       thread;
void * test_thread(void * ptr)
{
    sleep(30);
    return(ptr);
}
void thread_init(void)
{
     if (pthread_create( &thread,NULL,test_thread,NULL))
          perror("Thread not created!");
}
int main(int argc,char ** argv)
{
    thread_init();
    sleep(30);
}

当我在运行Linux 2.6.14和BusyBox的系统上执行此代码(但使用bash 2.04g)时,我重新启动并启动上面的测试程序后得到的ps列表:

...
   52 root            SW  [kswapd0]
  667 root            SW  [mtdblockd]
  710 root            SWN [jffs2_gcd_mtd4]
  759 root        980 S   /bin/sh
  760 root        500 S   /bin/inetd
  761 root        516 S   /bin/boa
  762 root        644 S   /sbin/syslogd -n
  763 root        640 S   /sbin/klogd -n
  766 root       1516 S   /bin/sshd -i
  767 root       1036 S   -sh
  768 root        420 S   ./test
  769 root        420 S   ./test
  770 root        420 S   ./test
  771 root        652 R   ps

内核是2.6.14内核,添加了一些驱动程序模块.

解决方法

它可能是“线程管理器”线程.见 link的答案D.5.

如果使用NPTL,您将看不到大多数现代Linux系统上列出的额外进程.但我搜索过,听起来像BusyBox使用ulibc,我认为最近只添加了NPTL支持.所以我不确定,但我的猜测是你正在使用LinuxThreads并将管理器线程视为额外的线程.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读