直接貼demo:
1.第一種使用喚醒等待執行緒方式:
public inte***ce gycallable
public class gyfeature implements runnable
@override
public void run() catch (throwable throwable) finally
}public object get()
return result;
}}public class gytask
}public class test);
gytask task2 = new gytask();
gyfeature submit2 = task2.submit(() -> );
system.out.println(submit.get());
system.out.println(submit2.get());
}}
2.第二種用到countdownlatch :
public class main3
static class client
public void sett(t t)
}static class service catch (interruptedexception e)
}).start();
return this;
}public t get() throws interruptedexception
}public static void main(string args) throws interruptedexception );
thread.sleep(2000);
system.out.println("買菜");
string s = submit.get();
system.out.println(s);
long end = system.currenttimemillis();
system.out.println(end - start);
}}
結果:
買菜邊做飯邊等菜
3041
3.第三種使用判斷成員變數:
public class main6
static class client
public void sett(t t)
}static class service
} catch (interruptedexception e)
}).start();
return this;
}public t get() throws interruptedexception
return this.client.gett();}}
}public static void main(string args) throws interruptedexception );
thread.sleep(500);
system.out.println("買菜");
string s = submit.get();
system.out.println(s);
long end = system.currenttimemillis();
system.out.println(end - start);
}}
其實這個思路就是:
先執行個執行緒,執行緒是沒有返回值的.這時傳入乙個封裝類,去接受執行緒裡的結果.然後使用執行緒工具使得到結果方法和非同步執行緒阻塞,改變執行順序.
future的簡單實現
一 入門 public classaimplementscallable org.junit.test public voidtest3 throwsexecutionexception,interruptedexception 這樣結果就輸出了 aaa很簡單吧,現在來簡單講解下future的使用。...
簡單的Future模式及其實現
future模式是乙個多執行緒的設計模式,以下乙個簡單的實現例子。實現的原理有點類似訂蛋糕,你去商店定做蛋糕時,並不能直接拿到蛋糕,而是拿到購物小票之類的,你需要等蛋糕製作完成後,再來取。在這期間你可以去做其他的事情,而不必在蛋糕店等待蛋糕的製作。這和單獨開乙個執行緒沒有什麼區別,具體有什麼好處我目...
Python的未來 future模組
簡單介紹一下python未來將會支援的一些語言特點 雖然ibm的 上也有介紹.但是太凌亂了.而且中翻譯過後,的格式想狗屎一樣.下面簡單介紹一下這些特點 nested scopes 改變名空間的搜尋過程 generators 使用生成器.能夠產生能儲存當前狀態的函式.division 精確的除法 ab...