当前位置:  技术问答>linux和unix

在创建linux线程时为什么会多一个线程?

    来源: 互联网  发布时间:2016-02-09

    本文导语:  我写了一个测试程序,在主线程(main())里面创建了一个新线程(void *task(void *unused)),让他们一直执行.然后打印他们的pid.最后生成test可执行文件 运行./test发现打印结果是main()线程的pid是1902,task线程的pid是1904. 然后使用top...

我写了一个测试程序,在主线程(main())里面创建了一个新线程(void *task(void *unused)),让他们一直执行.然后打印他们的pid.最后生成test可执行文件
运行./test发现打印结果是main()线程的pid是1902,task线程的pid是1904.
然后使用top命令查看系统信息,发现在test命令下有三个线程pid分别是1902 1903 1904,其中两个正好对应我建立的线程,但是中间那个线程是如何建立的?有什么特别作用?

|
先纠正几个错误.
1. 你所说的1902, 1904应该是tid, 即thread id, 是用pthread_self()函数获得的.
2. pid是process id, 指的是进程ID, 通过getpid()函数获得.

好了, 现在说你的问题, 先后创建的两个线程, 他们的tid不一定非得是连续的. 那个1903是什么并不重要, 你查看1903的pid是否和1902, 1904的pid一样, 如果不一样就忽略它, 因为它和你没关系, 如果一样, 就是你的程序问题.

    
 
 

您可能感兴趣的文章:

  • 请问:进程创建的线程是怎样运行的啊,线程的处理函数运行完了,线程就退出了吗?
  • 一个进程创建了两个线程,如何使得当任何一个线程(比如线程a)结束时,同时也结束线程b,也就是使两个线程一起死掉,怎么办呢?
  • 大家好,pthread库创建线程,如何等待线程安全退出?
  • 在一个进程的主线程中如何判断自己创建的线程是否存在?
  • 线程这样创建行吗?
  • java线程之使用Runnable接口创建线程的方法
  • java多线程编程之使用runnable接口创建线程
  • 如何在kthread_create创建的线程函数里面退出该线程呢????
  • Unix中PThread是干什么用的,创建线程吗---小妹
  • 创建线程失败 返回值为 11 怎么回事?
  • 用kthread_run创建kernel thread, 能不能限制线程的数目?
  • 有关线程创建的问题
  • 怎样创建一个幽灵线程?
  • 如何知道一个线程是由哪段代码创建的
  • 如何实现线程的“即时创建,即时销毁”?
  • C++ 创建线程问题
  • javascript开源软件 iis7站长之家
  • 多线程创建socket
  • linux创建线程失败问题!!!
  • 由同一个服务端创建两个线程分别向两个客户端同时发送不同的数据···
  • 菜鸟在c盘装了win2000,想在剩下的空间装Red Hat Enterprise Linux 3,在创建linux分区的时候,不知道都创建什么分区??我知道要创建一个
  • linux如何创建一个共享内存 可以mount 可以创建目录之类 跟硬盘分区一样
  • 急!linux下mysql的创建用户组和创建用户命令不能生效啊????
  • linux普通用户创建文件或目录
  • Linux创建进程的问题,请高手帮忙解答一下?
  • Linux 代理 一个客户端来就创建一个连接
  • 菜鸟问题:怎样创建一个对所有文件只有只读权限的linux帐号,谢谢!
  • linux下如何创建一个目录?
  • linux 用户创建
  • Linux系统下创建第二个oracle数据库
  • linux下如何创建一个user 和 group?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Bitsets 成员 Constructors:创建新bitsets
  • 一进程源源不断地创建文件,另一进程把这些创建的文件抓取并挪走
  • C++ Double Ended Queues(双向队列) 成员 Constructors:创建一个新双向队列
  • 创建用户组创建用户出错
  • C++ I/O 成员 open():创建一个输入流
  • 进程创建进程组后,然后创建该组中的进程,然后终止。这里的终止....?
  • Xcode介绍及创建工程和工程依赖操作步骤
  • php循环创建目录示例分享(php创建多级目录)
  • HTML5 sprite 样式创建工具Stitches介绍
  • navicat 8 创建数据库与创建用户分配权限图文方法
  • java Servlet实现Session创建存取以及url重写代码示例
  • sql server 2008:您对无法重新创建的表进行了更改或者启用了“阻止保存重新创建表的更改”
  • mkdir()是创建文件夹的函数,有没有循环创建多个目录级的函数呢?
  • 各位高手知道在JAVA中如何用一个名称创建一个对象实例,并调用其方法,注意:在编写代码时并不知要创建的对象的类名,也并不知方法名
  • FTP上创建的文件夹的创建日期始终和本机的对不上(无论如何改变日期和时间)(紧急!!!)
  • 怎么创建包,我创建包后,怎么找不到呢?
  • C语言中有指针,因此C语言可以创建链表,那么Java语言没有指针,那Java是否可以创建链表呢?
  • 100求解:如何在UNIX环境下创建一个新的端口号?另:能告之如何在WINDOWS2000环境下创建一个新的端口号就更好了!
  • 怎么创建这样一个文件???有分送,请指教
  • 自行创建的设备文件怎么在系统重启后不见了?
  • mkdir函数参数问题,创建目录权限不正确


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3