如何讓一個線程不斷跑起來,並且在取到值的時候能返回值而線程能繼續跑呢?
我們都知道可以用Callable接口獲得線程的返回值,或者觸發事件監聽來操作返回值,下面我將介紹另一種方法。
1 public abstract class Test implements Runnable { 2 public String A; 3 4 //開啟線程 5 public void run() { 6 while(true) { 7 //此處寫該方法的邏輯代碼 8 9 //listen()方法操作取得值A 10 listen(A); 11 12 } 13 14 } 15 16 //定義一個抽象方法listen() 17 public abstract void listen(String A); 18 19 }
這樣,線程取到值將存放在抽象方法listen()里,並且線程也將一直跑起來而不會停止。
當我們需要用到這個值時,只需要重寫listen()方法就可以啦。
1 public class Main { 2 3 public static void main(String[] args) { 4 Thread thread = new Thread(new Test() { 5 6 @Override 7 public void listen(String A) { 8 // TODO Auto-generated method stub 9 10 } 11 }); 12 thread.start(); 13 } 14 }