當在Java中實例化一個對象時,它是否綁定到在其中實例化的線程?因爲當我匿名地在一個線程中實現一個接口並將其傳遞給另一個線程來運行時,它的所有方法都在原始線程中運行。如果它們綁定到它們的創建線程,那麼是否有創建一個可以在任何線程中調用它的對象?基本Java多線程問題
2
A
回答
3
如果線程甲創建一個對象:
MyClass.staticMember = new Runnable() {...};
和螺紋乙調用該對象的一個方法:
MyClass.staticMember.run();
則run()
方法將在螺紋乙執行。
線程一個將簡單地繼續運行,無論它正在運行的任何代碼。
1
該對象沒有綁定到它創建的線程......只有在主線程上調用它們時,才能在主線程上執行這些方法。
這是比較容易看到哪個線程調用方法......只是做一個虛擬函數:
public threadDetect(string which)
{
System.out.println("Executed from " + which + " thread.");
}
在調用主線程:
threadDetect("main");
從子線程你電話:
threadDetect("child");
我不確定如果OP使用類似的方式來檢測哪個線程是exe切割方法,但這是做到這一點的一種方法。
相關問題
- 1. 基本多線程問題
- 2. 基本的多線程問題
- 3. Python多線程基本問題
- 4. 多線程的基本問題
- 5. 基本python多線程問題
- 6. java基本多線程
- 7. Java - 基本多線程
- 8. 基本線程問題
- 9. 基本線程問題
- 10. C++ - 基本線程問題
- 11. 基本線程問題
- 12. Java多線程問題
- 13. Java多線程問題.join()
- 14. 的java多線程問題
- 15. Java TCP多線程問題
- 16. java多線程問題
- 17. Java多線程問題
- 18. 多線程的Java問題
- 19. java編程和java單線程多線程問題(單線程與多線程)
- 20. 基本的線程池問題
- 21. Java:線程問題
- 22. Java - 線程問題
- 23. Java線程問題
- 24. Java線程問題
- 25. Java線程問題
- 26. Java - 線程問題
- 27. Java線程問題
- 28. Java線程問題
- 29. Java線程問題
- 30. Java線程問題
你怎麼知道他們是「在原始線程中運行」? – 2010-03-15 04:56:46
所以你創建了一個匿名類來實現一些接口。你怎麼「把它傳遞給另一個線程」?管?流?作爲線程的類構造函數的擴充? – Mark 2010-03-15 05:22:50
好吧,我通過一條消息傳遞它。當另一個線程收到消息並嘗試運行代碼(即繪製代碼)時,它聲稱我正在從原始線程進行繪製,並且這是禁止的。 – veered 2010-03-15 16:24:04