Java筆記 併發之Callable介面

2021-08-17 15:29:24 字數 1645 閱讀 9668

原文:

public

inte***ce callable

public

inte***ce runnable

class

mycallabletask

implements

callable

}

futuretask類同時實現了兩個介面,future和runnable介面,所以它既可以作為runnable被執行緒執行,又可以作為future得到callable的返回值。

callable<

integer

> mycallabletask =

new mycallabletask();

futuretask<

integer

> futuretask=

new futuretask<

integer

>(mycallabletask);

newthread(futuretask).start();

執行緒池中執行callable任務的原型例如:

public

inte***ce

executorservice

extends

executor

executorservice exec = executors.newcachedthreadpool();

future

future = exec.submit(new mycallabletask());

public

class callableandfuturetask

};futuretaskfuture = new futuretask(callable);

new thread(future).start();

try catch (interruptedexception e) catch (executionexception e)

}}

public

class callableandfuture

});try catch (interruptedexception e) catch (executionexception e)

}}

class mycallabletask implements callable  

@override

public string call() throws exception

return

"result of callable: "+id;

}

}public

class test

for (futurefs : results) catch (exception e)

} else

}

exec.shutdown();

} }

Java併發之執行緒池學習筆記

juc包下有乙個重要的執行緒池的實現,大大優化方便了我們對執行緒的使用,而不再是傳統的new乙個thread。執行緒池相對傳統的直接建立執行緒主要有三個優點 1.統一管理執行緒,可以重用存在的執行緒,避免多次的建立 消亡的開銷,使得效能表現得更好 2.可以有效控制最大併發執行緒數,提高系統資源利用率...

Java併發 JAVA併發程式設計實戰 讀書筆記3

發布乙個物件的意思是使它能夠被當前範圍之外的 所使用。比如將乙個引用儲存到其他 可以訪問的地方,在乙個非私有的方法中返回這個引用。在很多情況下,我們需要確保物件及它們的內部狀態不被暴露。乙個物件在尚未準備好時就將它發布,稱作逸出。最常見的發布物件的方式就是將物件的引用儲存到公共靜態域中,任何類和執行...

Java併發 JAVA併發程式設計實戰 讀書筆記8

為計算結果建立高效 可伸縮的快取記憶體 public inte ce computable public class expensivefunction implements computable public class memoizer1implements computable public ...