gpt4 book ai didi

java - 以编程方式检查两个线程是否属于Java中的同一进程

转载 作者:行者123 更新时间:2023-11-30 07:00:12 26 4
gpt4 key购买 nike

如何以编程方式检查两个线程是属于相同还是不同的进程?这是我写的一段代码:

public class MyThread {

public static void main(String[] args) {
TestThread1 obj1 = new TestThread1();
TestThread2 obj2 = new TestThread2();
System.out.println("Current thread:" + Thread.currentThread().getName());
Thread t1 = new Thread(obj1);
t1.start();
Thread t2 = new Thread(obj2);
t2.start();


}
}

class TestThread1 implements Runnable {
@Override
public void run () {
for(int i=0; i<1000 ;i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
System.out.println("Current thread:" + Thread.currentThread().getName());
}
}
}

class TestThread2 implements Runnable {
@Override
public void run () {
for(int i=0; i<1000 ;i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
System.out.println("Current thread:" + Thread.currentThread().getName());
}
}
}

据我了解,线程 t1 作为进程 TestThread1 的一部分创建,线程 t2 作为 TestThread2 进程的一部分创建。但是我如何以编程方式检查它?

最佳答案

您混合了线程和进程的概念。

thread t1 being created as part of process TestThread1 and thread t2 being created as part of TestThread2

您的 TestThread1TestThread2 只是可运行对象,它们包含线程应该执行哪些操作的信息。您的 t1t2 是实际的线程,它们在同一个进程中运行,因为您在一个应用程序中启动了它们。应用程序中的所有线程都在同一个 java 进程中运行,因此您不会有两个线程引用并且它们属于不同进程的情况。

如果您启动另一个 java 应用程序,它将在不同的进程中运行,但您将无法在单个上下文中比较来自不同进程的两个线程。

关于java - 以编程方式检查两个线程是否属于Java中的同一进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30830404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com