Java并發(fā)包提供了一套框架,大大簡(jiǎn)化了執(zhí)行異步任務(wù)所需的開發(fā),本節(jié)我們就來初步探討這套框架。

在之前的介紹中,線程Thread既表示要執(zhí)行的任務(wù),又表示執(zhí)行的機(jī)制,而這套框架引入了一個(gè)"執(zhí)行服務(wù)"的概念,它將"任務(wù)的提交"和"任務(wù)的執(zhí)行"相分離,"執(zhí)行服務(wù)"封裝了任務(wù)執(zhí)行的細(xì)節(jié),對(duì)于任務(wù)提交者而言,它可以關(guān)注于任務(wù)本身,如提交任務(wù)、獲取結(jié)果、取消任務(wù),而不需要關(guān)注任務(wù)執(zhí)行的細(xì)節(jié),如線程創(chuàng)建、任務(wù)調(diào)度、線程關(guān)閉等。

以上描述可能比較抽象,接下來,我們會(huì)一步步具體闡述。

基本接口

首先,我們來看任務(wù)執(zhí)行服務(wù)涉及的基本接口:

  • Runnable和Callable:表示要執(zhí)行的異步任務(wù)

  • Executor和ExecutorService:表示執(zhí)行服務(wù)

  • Future:表示異步任務(wù)的結(jié)果

網(wǎng)友評(píng)論