java怎么得到当前线程的启动线程id
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么得到当前线程的启动线程id相关的知识,希望对你有一定的参考价值。
public class 线程id
public static void main(String[] args)
System.out.println("\\n\\t\\t==========多线程怎么查看当前线程id==========\\n");
init();
//初始化!
private static void init()
for (int i=0;i<2 ;i++ )
new Thread(new TestRunnable()).start();
class TestRunnable implements Runnable
//简单测试直接用了静态,偷懒了!
private static int i=10;
public void run()
show();
synchronized void show()
while(i>=1)
System.out.println("当前执行的线程Id是:"+Thread.currentThread().getName()+"---->"+i--+"\\n");
参考技术A Thread.currentThread().getId()Java如何得到当前进程ID号
我现在写一个后台服务,需要用命令行进行启动与停止。
在启动时,需要保存进程的ID号,在停止时需要用到此进程号的吧。
现在问题是如何得到进程号?
或者在停止时动态得到此程序正运行的进程的号码?
不需要得到当前线程的名字。
可是Process ID的概念只有在UNIX类的操作系统中才有,Java作为一种多平台的程序语言,在JDK的接口中并不提供“进程ID”(Process ID)这种OS独有的概念。
如果要结束程序,可以使用System.exit()
如果非要得到自己的Process ID,唯一的方法就是在shell取得Process ID,然后Java在通过某种方式取得相应的Process ID。 参考技术A Runtime.getruntime.exec()
会返回一个Process类型的对象,在java程序中只能用这个对象来监控。
可以创建一个新thread(假设叫W)来调用Process.waitFor()等待那个Runtime.exec产生的进程,然后判断W.isAlive() 参考技术B java是在jvm上跑的,jvm本身作为系统的一个进程在跑,所以平时见到的都是java多线程,没有进程间通信,为什么呢,就是因为java中没有进程这一说法,除非指的是程序本身这个进程。这个进程的话需要用到系统命令或者底层c语言才能够得到。呃,本人jni不是太熟悉,可以参考http://hi.baidu.com/lff0305/blog/item/4f301a7b20d3d3f20bd187e3.html,linux下直接调用ps-ef再用管道提取吧。本回答被提问者采纳
以上是关于java怎么得到当前线程的启动线程id的主要内容,如果未能解决你的问题,请参考以下文章