假設我有一個post()
和一個get()
方法,我想從另一個線程運行。是否有可能只用一個擴展了Thread
的類來實現,其中那些方法不在run()
方法中?如何調用與線程運行()不同的方法
我想到了這一點:
XYThread xy = new XYThread();
xy.start();
xy.post();
xy.get();
但在這種情況下,將它仍然將是run()
方法後,多線程完成?
假設我有一個post()
和一個get()
方法,我想從另一個線程運行。是否有可能只用一個擴展了Thread
的類來實現,其中那些方法不在run()
方法中?如何調用與線程運行()不同的方法
我想到了這一點:
XYThread xy = new XYThread();
xy.start();
xy.post();
xy.get();
但在這種情況下,將它仍然將是run()
方法後,多線程完成?
做的工作裏面的run
方法;並調用任何你想調用的方法。
但是,run
和只有run
被稱爲「內」的線程。在發佈的代碼中post
和get
都是而不是在xy
線程的上下文中執行;而是在當前線程的上下文中。
也可以向一個線程提供一個Runnable,該線程再次調用它的方法,以使線程不需要被分類。是的,在某種程度上,這意味着要創建不同的類或嵌入邏輯。
因此,比創建兩個類或嘗試以某種方式在此示例的run方法中嵌入邏輯真的沒有更簡單的方法嗎? – 2014-10-18 22:30:21
可以創建一個匿名(Runnable或Thread)類,但是這個距離要儘可能近。例如。 'Thread xy = new Thread(new Runnable {public void run(){/ * .. * /}})'。 – user2864740 2014-10-18 22:31:23
好的,非常感謝! – 2014-10-18 22:32:46
只需從run()
方法調用它。
但是這意味着我必須創建兩個不同的職位類,並得到,如果我想分別稱他們? – 2014-10-18 22:11:29