2014-10-18 85 views
1

假設我有一個post()和一個get()方法,我想從另一個線程運行。是否有可能只用一個擴展了Thread的類來實現,其中那些方法不在run()方法中?如何調用與線程運行()不同的方法

我想到了這一點:

XYThread xy = new XYThread(); 
xy.start(); 
xy.post(); 
xy.get(); 

但在這種情況下,將它仍然將是run()方法後,多線程完成?

+0

但是這意味着我必須創建兩個不同的職位類,並得到,如果我想分別稱他們? – 2014-10-18 22:11:29

回答

2

做的工作裏面run方法;並調用任何你想調用的方法。

但是,run只有run被稱爲「內」的線程。在發佈的代碼中postget都是而不是xy線程的上下文中執行;而是在當前線程的上下文中。

也可以向一個線程提供一個Runnable,該線程再次調用它的方法,以使線程不需要被分類。是的,在某種程度上,這意味着要創建不同的類或嵌入邏輯。

+0

因此,比創建兩個類或嘗試以某種方式在此示例的run方法中嵌入邏輯真的沒有更簡單的方法嗎? – 2014-10-18 22:30:21

+0

可以創建一個匿名(Runnable或Thread)類,但是這個距離要儘可能近。例如。 'Thread xy = new Thread(new Runnable {public void run(){/ * .. * /}})'。 – user2864740 2014-10-18 22:31:23

+0

好的,非常感謝! – 2014-10-18 22:32:46

0

只需從run()方法調用它。

相關問題