Thread.getID()得到的是java进程内的线程ID,如何能够得到一个java线程在操作系统中的ID?

解决方案 »

  1.   

    java的线程是由JVM而不是用户级库或者操作系统内核来管理的。怎么能得到在操作系统中的ID?
      

  2.   

    还有JVM规范并没有给出java线程如何映射到支持的操作系统,而是留给特定的JVM实现来决定!
      

  3.   

    我也觉得: interhanchi(Stallman'fans)说的对!
      

  4.   

    我想,系统中只能得到Java的进程(Process不是线程Thread)ID吧
      

  5.   

    是这样,因为我的java进程会随机性的自动退出,我看了一下Drwtsn日志,发现是有个线程发生了c0000005 (访问侵犯)的异常,这个日志中记录了该线程的ID。为了定位到底是哪个线程有问题,我就在每个线程启动的时候打印该线程的ID,这样程序再次退出的时候我就可以比对线程ID来定位问题了。可是我发现我打印出的线程ID是从1开始分配的,使进程内局部的。
      大家有什么定位问题的好办法吗?
      怎么调用外部命令呢,我有兴趣了解一下,请指教!
      

  6.   

    你看一下,你启动这个java进程时候的当前目录,里面有一个h开头,后面是数字的日志文件(中间是什么忘记了),可能会有帮助
      

  7.   

    忘了说一下,我的程序运行于windows系统