回答
表示您正在使用當前對象run()
的方法,從Runnable
接口,作爲此線程的主/啓動方法。
讓我們開始看java文檔。你實際上是在調用此構造
public Thread(Runnable target, String name)
目標 - 其run方法時,該線程 啓動被調用的對象。如果爲null,則調用此線程的運行方法。
名 - 新線程
這裏this
的名稱,是指你在哪裏調用它的類的當前對象,因爲它是在java中的其他地方。我相信你的那個類實現Runnable
並重寫run()
方法。那就是構造函數參數如何匹配。
最後一個單詞的輕微錯字:*匹配*。 –
ow。是。謝謝。糾正。 –
順便說一句,非常好的答案,upvoted! ;-) –
看一看
簡單示例
public class Test {
public static void main(String[] args) throws ParseException {
Thread threadOne = new Thread(new Class_1(),"Class_1");
Thread threadTwo = new Thread(new Class_2(), "Class_2");
threadOne.run(); //This run calls run in Class_1
threadTwo.run(); //This run calls run in Class_2
}
}
class Class_1 implements Runnable{
@Override
public void run() {
System.out.println("Class_1 run method");
}
}
class Class_2 implements Runnable{
@Override
public void run() {
System.out.println("Class_2 run method");
}
}
輸出
Class_1 run method
Class_2 run method
您必須在當前類中實現可運行接口,並通過在您的類的構造函數中使用此關鍵字傳遞當前可運行對象來初始化線程。
它必須調用運行方法,同時創建可運行類的實例,如下面的示例。
public class Nool implements Runnable {
Thread t;
public Nool() {
t = new Thread(this, "Nool");
t.start();
}
@Override
public void run() {
System.out.println("NOOL");
}
}
我希望這個解釋對你有幫助。
除了這是一個_Really Bad Idea_在給定線程對象的構造函數返回之前引用某個對象。 (也就是說,在對象被[_safely published_](https://www.ibm.com/developerworks/library/j-jtp0618/)) –
@jameslarge之前,我無法理解你想要解釋什麼。 – vijayraj34
'Nool'類的構造函數將'this'賦予一個新的線程。 'this'是對構造函數尚未完成構造的對象的引用。這很糟糕,因爲新線程啓動時線程之間沒有同步。如果沒有同步,則不能保證一個線程何時(如果曾經)看到不同線程所做的更改。即使'thread.start()'是你的構造函數所做的最後一件事情,新線程可能會看到處於未構造狀態的對象。 –
- 1. /(斜線)在CSS中意味着什麼?
- 2. 在Java線程轉儲中,nid意味着什麼?
- 3. 結腸在Java中意味着什麼?
- 4. '...'在java中意味着什麼?
- 5. 「SomeClass.this」在java中意味着什麼?
- 6. tmp_xxx在java中意味着什麼?
- 7. @符號在java中意味着什麼?
- 8. 「| =」在Java中意味着什麼?
- 9. 「x =(something)」在java中意味着什麼?
- 10. 「this.x」在java中意味着什麼?
- 11. $$ _ Javasassist_11在java中意味着什麼?
- 12. jquery:「$(this)」究竟意味着什麼?
- 13. Java中的空間意味着什麼?
- 14. 'COB'在編程中意味着什麼?
- 15. \在編程中意味着什麼?
- 16. 什麼是鎖的ID在Java線程轉儲意味着
- 17. 什麼%*%意味着R中
- 18. 在AngularJS中結尾意味着什麼double意味着
- 19. 線程3 NullPointerException在我的代碼中意味着什麼?
- 20. 這個「this」在這段JavaScript代碼中意味着什麼?
- 21. java線程的狀態究竟意味着什麼?
- 22. StackOverflowError在Java中意味着什麼?它的修復是什麼?
- 23. 線程安全在PHP上下文中意味着什麼?
- 24. 這條線在android編程中意味着什麼?
- 25. 什麼呢##意味着在$ {}
- 26. 什麼===在PHP意味着
- 27. 什麼。意味着在PHP?
- 28. BC date在PostgreSQL中意味着什麼?
- 29. 「自我」在JavaScript中意味着什麼?
- 30. 這個'&'在Ruby中意味着什麼?
糾錯:這是** a **創建新線程的方式。有關更多詳細信息,請參閱[定義和啓動線程](https://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html)。 – shmosel