日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Java線(xiàn)程池在運(yùn)行后的結(jié)果反查

Java線(xiàn)程池需要不斷的學(xué)習(xí),在學(xué)習(xí)的時(shí)候我們就要注意不少的問(wèn)題。下面我們就來(lái)看看具體的語(yǔ)言運(yùn)作環(huán)境如何才能滿(mǎn)足Java線(xiàn)程池相關(guān)程序的運(yùn)行。希望大家有所收獲。

澤庫(kù)網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)2013年開(kāi)創(chuàng)至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

無(wú)論是接收Runnable型參數(shù),還是接收Callable型參數(shù)的submit()方法,都會(huì)返回一個(gè)Future(也是一個(gè)接口)類(lèi)型的對(duì)象。該對(duì)象中包含了任務(wù)的執(zhí)行情況以及結(jié)果。調(diào)用Future的boolean isDone()方法可以獲知任務(wù)是否執(zhí)行完畢;調(diào)用Object get()方法可以獲得任務(wù)執(zhí)行后的返回結(jié)果,如果此時(shí)任務(wù)還沒(méi)有執(zhí)行完,get()方法會(huì)保持等待,直到相應(yīng)的任務(wù)執(zhí)行完畢后,才會(huì)將結(jié)果返回。

我們用下面的一個(gè)例子來(lái)演示Java5.0中Java線(xiàn)程池的使用:

Java代碼

 
 
 
  1. import java.util.concurrent.*; 
  2. public class ExecutorTest { 
  3. public static void main(String[] args) throws 
    InterruptedException, 
  4. ExecutionException { 
  5. ExecutorService es = Executors.newSingleThreadExecutor(); 
  6. Future fr = es.submit(new RunnableTest());// 提交任務(wù) 
  7. Future fc = es.submit(new CallableTest());// 提交任務(wù) 
  8. // 取得返回值并輸出 
  9. System.out.println((String) fc.get()); 
  10. // 檢查任務(wù)是否執(zhí)行完畢 
  11. if (fr.isDone()) { 
  12. System.out.println("執(zhí)行完畢-RunnableTest.run()"); 
  13. } else { 
  14. System.out.println("未執(zhí)行完-RunnableTest.run()"); 
  15. // 檢查任務(wù)是否執(zhí)行完畢 
  16. if (fc.isDone()) { 
  17. System.out.println("執(zhí)行完畢-CallableTest.run()"); 
  18. } else { 
  19. System.out.println("未執(zhí)行完-CallableTest.run()"); 
  20. // 停止線(xiàn)程池服務(wù) 
  21. es.shutdown(); 
  22. class RunnableTest implements Runnable { 
  23. public void run() { 
  24. System.out.println("已經(jīng)執(zhí)行-RunnableTest.run()"); 
  25. class CallableTest implements Callable { 
  26. public Object call() { 
  27. System.out.println("已經(jīng)執(zhí)行-CallableTest.call()"); 
  28. return "返回值-CallableTest.call()"; 
  29. import java.util.concurrent.*;
  30. public class ExecutorTest {
  31. public static void main(String[] args) throws 
    InterruptedException,
  32. ExecutionException {
  33. ExecutorService es = Executors.newSingleThreadExecutor();
  34. Future fr = es.submit(new RunnableTest());// 提交任務(wù)
  35. Future fc = es.submit(new CallableTest());// 提交任務(wù)
  36. // 取得返回值并輸出
  37. System.out.println((String) fc.get());
  38. // 檢查任務(wù)是否執(zhí)行完畢
  39. if (fr.isDone()) {
  40. System.out.println("執(zhí)行完畢-RunnableTest.run()");
  41. } else {
  42. System.out.println("未執(zhí)行完-RunnableTest.run()");
  43. }
  44. // 檢查任務(wù)是否執(zhí)行完畢
  45. if (fc.isDone()) {
  46. System.out.println("執(zhí)行完畢-CallableTest.run()");
  47. } else {
  48. System.out.println("未執(zhí)行完-CallableTest.run()");
  49. }
  50. // 停止線(xiàn)程池服務(wù)
  51. es.shutdown();
  52. }
  53. }
  54. class RunnableTest implements Runnable {
  55. public void run() {
  56. System.out.println("已經(jīng)執(zhí)行-RunnableTest.run()");
  57. }
  58. }
  59. class CallableTest implements Callable {
  60. public Object call() {
  61. System.out.println("已經(jīng)執(zhí)行-CallableTest.call()");
  62. return "返回值-CallableTest.call()";
  63. }
  64. }

運(yùn)行結(jié)果:

已經(jīng)執(zhí)行-RunnableTest.run()
已經(jīng)執(zhí)行-CallableTest.call()
返回值-CallableTest.call()
執(zhí)行完畢-RunnableTest.run()
執(zhí)行完畢-CallableTest.run()

使用完Java線(xiàn)程池后,需要調(diào)用它的shutdown()方法停止服務(wù),否則其中的所有線(xiàn)程都會(huì)保持運(yùn)行,程序不會(huì)退出。


網(wǎng)頁(yè)標(biāo)題:Java線(xiàn)程池在運(yùn)行后的結(jié)果反查
文章出自:http://www.5511xx.com/article/cdcgohs.html