我需要在我的Main類的main()方法中定義一個共享變量。我需要兩個線程才能訪問該共享變量。我通過實現Runnable接口並實現接口的抽象run()方法來創建線程。在我的類中定義的實現Runnable接口的run()方法內,我如何引用Main類的main()方法中定義的共享變量?顯然,只是通過名稱調用它們不起作用 - 因爲它們看起來超出了我的Runnable類的範圍。從Runnable類中訪問共享變量
編輯 - 道歉,這裏是一個簡單的例子
public Class DoThread implements Runnable {
public void run(){
sharedVar += 1
}
}
並在一個單獨的.class文件:
public Class Main {
public static void main(String[] args) {
int sharedVar = 0;
Thread t1 = new Thread(new DoThread());
Thread t2 = new Thread(new DoThread());
t1.start();
t2.start();
t1.join();
t2.join();
}
}
所以我應該被創建一個對象到共享VAR存儲在再在創建線程時將該對象傳遞給DoThread()構造函數?我有時在java通過ref傳遞或var傳遞之間感到困惑,所以如果我這樣做,將通過t2看到由t1改變共享變量嗎?
你能發佈你的代碼嗎? – SJuan76
總是嘗試發佈[SSCCE](http://sscce.org/)。 –