我不認爲這是可能的,但我想告訴我的每個線程工作在一個特定的對象。有點兒像這樣 -Java如何通過一個線程的額外對象
class Tester implements Runnable{
String s1, s2;
Thread t1, t2;
test(){
t1 = new Thread(this, "t1");
t2 = new Thread(this, "t2");
t1.start();
t2.start();
}
public void run(){
if(this is t1){
s1="s1";
}
if(this is t2){
s2="s2";
}
}
}
我想以某種方式能夠告訴thread t1
對s2
上string s1
和t2
運行代碼。現在我只是通過檢查Thread.currentThreat.getName()
來做到這一點,但那不是一個好方法。另一種方法是製作一個匿名的Runnable
類,它有自己的字符串,並且只有run
就可以了,但是接下來主線程如何得到兩個字符串呢?
聲明接口'Worker'用'公共無效的doWork(字符串PARAM)'方法,並將'Worker'在你的類中實現'Runnable'的字段,然後在'run'方法中使用'worker.doWork'。不過,請注意,如果您使用兩個不同的實現'Runnable'接口的類,這可以很容易。 –