Doctoryang

          業(yè)精于勤荒于嬉!

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            10 隨筆 :: 1 文章 :: 0 評(píng)論 :: 0 Trackbacks

          JDK5線程并發(fā)包

          1)AtomicInteger

          使用原子方式更新int值


          2)創(chuàng)建線程池

          a)創(chuàng)建固定大小的線程池

          ExecutorService threadPool = Executors.newFixedThreadPool(10);//創(chuàng)建一個(gè)有10個(gè)線程的線程池


          b)創(chuàng)建緩存線程池

          Executors.newCachedThreadPool();

          創(chuàng)建一個(gè)可根據(jù)需要?jiǎng)?chuàng)建新線程的線程池,可自動(dòng)調(diào)整線程的多少


          c)創(chuàng)建單線程的線程池

          Executors.newSingleThreadExecutor();

          該線程池里面只有一個(gè)線程,如果死掉了也可以自動(dòng)再創(chuàng)建一個(gè),保證永遠(yuǎn)有一個(gè)


          d)創(chuàng)建一個(gè)線程池,它可安排在給定延遲后運(yùn)行命令或者定期地執(zhí)行

          ScheduledExecutorService threadPool = Executors.newScheduledThreadPool(3);

          threadPool.schedule(Runnable command,long delay,TimeUnit unit)

          創(chuàng)建并執(zhí)行在給定延遲后啟用的一次性操作


          threadPool.scheduleAtFixedRate(Runnable command,long initialDelay,long period,TimeUnit unit)

          創(chuàng)建并執(zhí)行一個(gè)在給定初始延遲后首次啟用的定期操作,后續(xù)操作具有給定的周期.

          也就是將在initialDelay后開始執(zhí)行,然后在initialDelay+period后執(zhí)行,接著在initialDelay + 2 * period后執(zhí)行,依此類推


          不管哪種創(chuàng)建方式其實(shí)都是由ThreadPoolExecutor類來實(shí)現(xiàn)的


          3)Callable&Future

          a)Future取得的結(jié)果類型和Callable返回的結(jié)果類型必須一致,這是通過泛型來實(shí)現(xiàn)的。

          b)Callable要采用ExecutorSevice的submit方法提交,返回的future對(duì)象可以取消任務(wù)。

          c)CompletionService用于提交一組Callable任務(wù),其take方法返回已完成的一個(gè)Callable任務(wù)對(duì)應(yīng)的Future對(duì)象。


          4)Lock&Condition

          Lock ---> synchronized

          Lock lock = new ReentrantLock();

          ReadWriteLock rwlock = new ReentrantReadWriteLock();


          private Condition condition = lock.newCondition();

          condition.await();  ---> wait()

          condition.signal(); ---> notify()


          5)Semaphore

          final Semaphore semaphore = new Semaphore(3);


          6)CyclicBarrier

          7)CountDownLatch

          8)Exchanger

          9)ArrayBlockingQueue(阻塞隊(duì)列)

          10)ConcurrentHashMap

          CopyOnWriteArrayList

          CopyOnWriteArraySet

          posted on 2016-09-06 17:02 Doctoryang 閱讀(119) 評(píng)論(0)  編輯  收藏 所屬分類: CoreJava

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 革吉县| 凤山市| 科技| 奎屯市| 陇南市| 海南省| 安庆市| 徐闻县| 壶关县| 临清市| 宣汉县| 达州市| 军事| 灵石县| 当阳市| 桓台县| 隆回县| 大余县| 广德县| 蛟河市| 正蓝旗| 务川| 庆阳市| 开远市| 安化县| 阿荣旗| 腾冲县| 呼伦贝尔市| 望都县| 五指山市| 林西县| 东兰县| 都兰县| 清丰县| 黔西县| 容城县| 高阳县| 嘉定区| 休宁县| 贵溪市| 章丘市|