《Java并发编程 核心方法与框架》读书笔记思维导图_第1页
《Java并发编程 核心方法与框架》读书笔记思维导图_第2页
《Java并发编程 核心方法与框架》读书笔记思维导图_第3页
《Java并发编程 核心方法与框架》读书笔记思维导图_第4页
《Java并发编程 核心方法与框架》读书笔记思维导图_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PPT书籍导读最新版本读书笔记模板《Java并发编程核心方法与框架》最新版读书笔记,下载可以直接修改方法使用读者程池类线程接口线创建运行工厂实现问题作用任务框架返回值字符实验本书关键字分析思维导图01Semaphore和Exchanger的...Phaser的使用Future和Callable的使用CountDownLatch和Cycli...Executor与ThreadPoolE...CompletionService的使用目录030502040607接口ExecutorService的方法...Fork-Join分治编程计划任务ScheduledExecuto...并发集合框架目录0908010内容摘要本书尽量减少“啰嗦”式的文字语言,全部用Demo式案例来讲解技术点的实现,使读者看到代码及运行结果后就可以知道此项目要解决的是什么问题。类似于网络中Blog的风格,可让读者用最短的时间学会此知识点,明白此知识点如何应用,以及在使用时要避免什么。这就像“瑞士军刀”,虽短小,却锋利。本书的目的就是帮读者快速学习并解决问题。Semaphore和Exchanger的...类Semaphore所提供的功能完全就是synchronized关键字的升级版,但它提供的功能更加的强大与方便,主要的作用就是控制线程并发的数量无参方法tryAcquire()的作用是尝试地获得1个许可,如果获取不到则返回false,此方法通常与if语句结合使用,其具有无阻塞的特点。1.1Semaphore的使用1.3本章总结1.2Exchanger的使用Semaphore和Exchanger的...1.1.1类Semaphore的同步性1.1.2类Semaphore构造方法...1.1.3方法acquire(int...1.1.4方法acquireUnint...1.1.5方法availablePer...1.1.6方法getQueueLeng...0103020405061.1Semaphore的使用1.1.7公平与非公平信号量的测试1.1.8方法tryAcquire()...1.1.9方法tryAcquire(i...1.1.10方法tryAcquire(...1.1.11方法tryAcquire(...1.1.12多进路-多处理-多出路实验0103020405061.1Semaphore的使用1.1.13多进路-单处理-多出路实验1.1.15使用Semaphore实现...1.1.14使用Semaphore创建...1.1Semaphore的使用1.2.1方法exchange()阻塞...1.2.3方法exchange(Vx...1.2.2方法exchange()传递...1.2Exchanger的使用CountDownLatch和Cycli...无阻塞的特点可以使线程不至于在同步处一直持续等待的状态,如果if语句判断不成立则线程会继续走else语句,程序会继续向下运行。2.1CountDownLatch的使...2.3本章总结2.2CyclicBarrier的使用CountDownLatch和Cycli...2.1.1初步使用2.1.2裁判在等全部的运动员到来2.1.3各就各位准备比赛2.1.4完整的比赛流程2.1.5方法await(longt...2.1.6方法getCount()的使...0103020405062.1CountDownLatch的使...2.2.1初步使用2.2.2验证屏障重置性及getNum...2.2.3用CyclicBarrier...2.2.4方法isBroken()的使...2.2CyclicBarrier的使用2.2.5方法await(longt...2.2.7方法reset()2.2.6方法getNumberWai...2.2CyclicBarrier的使用Phaser的使用方法acquireUninterruptibly()的作用是使等待进入acquire()方法的线程,不允许被中断。3.1Phaser的使用3.2类Phaser的arriveAn...3.3类Phaser的arriveAn...3.4类Phaser的arriveAn...3.5类Phaser的getPhase...3.6类Phaser的getRegis...010302040506Phaser的使用3.7类Phaser的bulkRegi...3.8类Phaser的getArriv...3.9类Phaser的arrive()...3.10类Phaser的arrive...3.11类Phaser的awaitAd...3.12类Phaser的awaitAd...010302040506Phaser的使用3.13类Phaser的awaitAd...3.14类Phaser的awaitAd...3.15类Phaser的awaitAd...3.16类Phaser的forceTe...3.17控制Phaser类的运行时机3.18本章总结010302040506Phaser的使用Executor与ThreadPoolE...另外需要说明一下,对Semaphore类的构造方法传递的参数permits值如果大于1时,该类并不能保证线程安全性,因为还是有可能会出现多个线程共同访问实例变量,导致出现脏数据的情况。4.1Executor接口介绍4.2使用Executors工厂类创建...4.3ThreadPoolExecut...4.4本章总结Executor与ThreadPoolE...4.2.1使用newCachedThr...4.2.2验证newCachedThr...4.2.3使用newCachedThr...4.2.4使用newFixedThre...4.2使用Executors工厂类创建...4.2.5使用newFixedThre...4.2.7使用newSingleThr...4.2.6使用newSingleThr...4.2使用Executors工厂类创建...4.3.1构造方法的测试4.3.2方法shutdown()和s...4.3.3方法isShutdown()4.3.4方法isTerminatin...4.3.5方法awaitTermina...4.3.6工厂ThreadFactor...0103020405064.3ThreadPoolExecut...4.3.7方法set/getRejec...4.3.8方法allowsCoreTh...4.3.9方法prestartCore...4.3.10方法getComplete...4.3.11常见3种队列结合max值的...4.3.12线程池ThreadPool...0103020405064.3ThreadPoolExecut...4.3.13方法afterExecut...4.3.14方法remove(Runn...4.3.15多个get方法的测试4.3.16线程池ThreadPool...4.3ThreadPoolExecut...Future和Callable的使用类Semaphore的构造函数参数permits是许可的意思,代表同一时间内,最多允许多少个线程同时执行acquire()和release()之间的代码。5.1Future和Callable的...5.2方法get()结合Executo...5.3方法get()结合Executo...5.4使用ExecutorServic...5.5方法cancel(boolean...5.6方法get(longtimeo...010302040506Future和Callable的使用5.7异常的处理5.8自定义拒绝策略RejectedE...5.9方法execute()与subm...5.10验证Future的缺点5.11本章总结12345Future和Callable的使用CompletionService的使用有些时候,获得许可的顺序与线程启动的顺序有关,这时信号量就要分为公平与非公平的。6.1CompletionServic...6.2使用CompletionServ...6.3使用take()方法6.4使用poll()方法CompletionService的使用6.5使用poll(longtime...6.6类CompletionServi...6.7方法Future<V>subm...6.8本章总结CompletionService的使用接口ExecutorService的方法...所谓的公平信号量是获得锁的顺序与线程启动的顺序有关,但不代表100%地获得信号量,仅仅是在概率上能得到保证。7.1在ThreadPoolExecu...7.2方法invokeAny(Coll...7.3方法invokeAny()与执行...7.4方法invokeAny()与执行...7.5方法invokeAny()与全部...7.6方法invokeAny(Coll...010302040506接口ExecutorService的方法...7.7方法invokeAll(Coll...7.8方法invokeAll(Coll...7.9方法invokeAll(Coll...7.10方法invokeAll(Col...接口ExecutorService的方法...7.11方法invokeAll(Col...7.13本章总结7.12方法invokeAll(Col...接口ExecutorService的方法...计划任务ScheduledExecuto...而非公平信号量就是无关的了。8.1ScheduledExecuto...8.2ScheduledThreadP...8.3ScheduledThreadP...8.4延迟运行并取得返回值8.5使用scheduleAtFixe...8.6使用scheduleWithFi...010302040506计划任务ScheduledExecuto...8.7使用getQueue()与rem...8.8方法setExecuteExis...8.9方法setContinueExi...8.10使用cancel(boolea...8.11本章总结12345计划任务ScheduledExecuto...Fork-Join分治编程在生活中也存在这种场景,比如一个生产键盘的生产商,发布了10个代理销售许可,所以最多只有10个代理商来获得其中的一个许可,这样就限制了代理商的数量,同理也限制了线程并发数的数量,此类的主要作用就是限制线程并发的数量,如果不限制线程并发的数量,则CPU的资源很快就被耗尽,每个线程执行的任务是相当缓慢,因为CPU要把时间片分配给不同的线程对象,而且上下文切换也要耗时,最终造成系统运行效率大幅降低,所以限制并发线程的数量还是非常有必要的。9.1Fork-Join分治编程与类结...9.2使用RecursiveActio...9.3使用RecursiveActio...9.4使用RecursiveTask取...9.5使用RecursiveTask执...9.6使用RecursiveTask实...010302040506Fork-Join分治编程9.7使用Fork-Join实现求和:...9.8使用Fork-Join实现求和:...9.9类ForkJoinPool核心方...9.10类ForkJoinTask对异...9.11本章总结12345Fork-Join分治编程9.9.1方法publicvoid...9.9.2方法publicvoid...9.9.3方法publicvoid...9.9.4方法public<T>F...9.9.5方法publicForkJ...9.9.6方法public<T>F...0103020405069.9类ForkJoinPool核心方...9.9.7方法public<T>F...9.9.8方法public<T>L...9.9.9方法publicvoid...9.9.10方法publicList...9.9.11方法isTerminati...9.9.12方法publicbool...0103020405069.9类ForkJoinPool核心方...9.9.13方法publicbool...9.9.15监视pool池的状态9.9.14方法public<T>...9.9类ForkJoinPool核心方...并发集合框架类Exchanger的主要作用可以使2个线程之间互相方便地

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论