-1
後仍然可以使用一個線程的對象變量我有這個線程中斷
public class ThreadA extends Thread {
private final String lala = "lala";
@Override
public void run() {
Scanner scanner = new Scanner(System.in);
String value = scanner.next();
while (!value.equals("stop") && !isInterrupted()) {
value = scanner.next();
}
interrupt();
System.out.println("exit");
}
public String getMe() {
return lala;
}
}
,我不知道爲什麼,我總是可以訪問的方法getMe(),即使線程已經中斷。
這是爲什麼?而且這種情況總是可能的,即使在幾天之後,或者當垃圾收集器有些時候會刪除該對象?
線程與對象無關。你在你自己的線程上調用該方法。 – SLaks
首先,'interrupt'只是'Thread'實例上的'boolean'標記,它對線程沒有直接影響。其次,執行的線程是一回事,'Thread'類的一個實例是完全不同的東西。只要你持有對它的引用,它就是可訪問的,並且當相應的執行線程處於活動狀態時,它始終可以作爲currentThread()來訪問。 –