Java并发编程:核心方法与框架Java核心技术并发编程的艺术多线程编程核心技术高并发编程详解pdf下载pdf下载

Java并发编程:核心方法与框架Java核心技术并发编程的艺术多线程编程核心技术高并发编程详解百度网盘pdf下载

作者:
简介:本篇主要提供Java并发编程:核心方法与框架Java核心技术并发编程的艺术多线程编程核心技术高并发编程详解pdf下载
出版社:书香神州图书专营店
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍



产品特色


编辑推荐

适读人群 :1. 开发人员。他们可以非常系统地掌握Java多线程高并发的开发技巧和深入理解其中API的细节;2. 架构师。他们可以掌握架构设计的技巧,搭建高吞吐量高可用的Java应用程序。? 3.关于Java技术的程序员。

? 立足于线程源码剖析,从基础入手,逐层渐进深入,环环紧扣,针对技术细节进行了细致归纳,在解读源码的时候又引入了优秀的架构设计。

 

? 以业务场景下的真实问题作为导向,详细阐述每一个解决方案的来龙去脉,突出“身临其境”的阅读效果。

 

? 将大量的实际案例、原理剖析和实战代码相结合,让读者能够更加清晰深入地理解每一个技术细节的用法和实用技巧。

 

? 结合业界公认的好的设计架构技巧模式解决实际开发中遇到的问题,站在程序架构设计的角度指导读者设计高效灵活的多线程应用程序。

内容简介

本书主要包含四个部分: 部分主要阐述Thread的基础知识,详细介绍线程的API使用、线程安全、线程间数据通信,以及如何保护共享资源等内容,它是深入学习多线程内容的基础。 第二部分引入了ClassLoader,这是因为ClassLoader与线程不无关系,我们可以通过synchronized关键字,或者Lock等显式锁的方式在代码的编写阶段对共享资源进行数据一致性保护,那么一个Class在完成初始化的整个过程到后在方法区(JDK8 以后在元数据空间)其数据结构是怎样确保数据一致性的呢?这就需要对ClassLoader有一个比较全面的认识和了解。 第三部分详细、深入地介绍volatile关键字的语义,volatile关键字在Java中非常重要,可以说它奠定了Java核心并发包的高效运行,在这一部分中,我们通过实例展示了如何使用volatile关键字以及非常详细地介绍了Java内存模型等知识。 本书的第四部分,站在程序架构设计的角度深入讲解了如何设计高效灵活的多线程应用程序,这一部分长达15个章节,其重要程度可见一斑。




书名:【正版】Java并发编程的艺术|4730532
图书定价:59元
图书作者:方腾飞;魏鹏;程晓明
出版社:机械工业出版社
出版日期:2015/7/1 0:00:00
ISBN号:9787111508243
开本:16开
页数:0
版次:1-1
作者简介
方腾飞(花名清英,英文名Kiral)
蚂蚁金服团技术专家,从事Java开发近10年。 5年以上的团队管理、项目管理和敏捷开发经验,崇尚团队合作。曾参与CMS、电子海图、SOC、ITIL、电子商务网站和信贷管理系统等项目。目前在蚂蚁金服网商银行贷款管理团队负责数据采集平台开发工作。与同事合作开发了tala code Review插件,深受阿里数千名工程师拥趸,并开发过开源工具jdbcutil (https://github.com/kiral/utils)。创办了并发编程网(http://ifeve.com),组织翻译了百余篇国外技术文章,并曾为InfoQ撰写“聊聊并发”专栏,在《程序员》杂志撰写敏捷实践系列文章,曾用博客http://kiral.javaeye.com。
魏鹏
集团技术专家,在中国网站技术部工作多年,曾担任中国网站交易平台架构师,主导了交易系统服务化工作,设计实现的数据迁移系统高效地完成了中国网站交易数据到集团的迁移工作。目前在共享业务事业部从事Java应用容器Pandora和服务框架HSF的相关工作,其中Java应用容器Pandora是中间件运行的基础,而服务框架HSF则是集团实现服务化的主要解决方案,二者在拥有为广泛的使用量。个人平时喜欢阅读技术书籍,翻译一些国外文档,喜欢总结、乐于分享,对Java应用容器、多线程编程以及分布式系统感兴趣。
程晓明
架构师,从事交易平台系统的开发,技术上关注并发与NIO。因5年前遇到的一个线上故障,解决过程中对Java并发编程产生了浓厚的兴趣,从此开始了漫长的探索之旅:从底层实现机制、内存模型到Java同步.纵观我自己对Java并发的学习过程,是一个从高层到底层再到高层的一个反复迭代的过程,我估计很多读者的学习过程应该与我类似。文章多见诸《IBM deveIOperWorks》、InfOQ和《程序员》杂志。
内容简介
并发编程领域的扛鼎之作,作者是阿里和的Java技术专家,对并发编程有非常深入的研究,本书是他们多年一线开发经验的结晶。本书的部分内容在出版早期发表在Java并发编程网和帅foQ等技术社区,得到了非常高的评价。它选取了Java并发编程中核心的技术进行讲解,从JDK源码、JVM、CPU等多角度全面剖析和讲解了Java并发编程的框架、工具、原理和方法,对Java并发编程进行了深入和透彻的阐述。
内容涵盖Java并发编程机制的底层实现原理、Java内存模型、Java并发编程基础、Java中的锁、并发容器和框架、原子类、并发工具类、线程池、Executor框架等主题,每个主题都做了深入的讲解,同时通过实例介绍了如何应用这些技术。




内容简介

技术畅销书《Java多线程编程核心技术》作者撰写,全程案例式讲解,全面介绍Java并发包相关的技术。以浅白的措辞,结合大量实例模拟实际应用场景,全面解析Java并发包中的核心类、API与并发框架的使用。  全书共10章。第1章讲解了线程间的同步性,以及线程间的传输数据控制,即Semaphore和Exchanger类的使用。第2章介绍了在同步处理上更加灵活的工具类CountDownLatch和CyclicBarrier,详细到每个类的API的具体使用与应用场景。第3章是第2章的升级,由于CountDownLatch和CyclicBarrier类都有相应的弊端,所以在JDK 1.7中新增加了Phaser类来解决这些缺点,该类是熟练掌握JDK并发包的必要知识点。第4章是读者应重点掌握的Executor接口与ThreadPoolExecutor线程池,能有效地提高程序运行效率,更好地统筹线程执行的相关任务。第5章讲解Future和Callable的使用,解决线程需要返回值的情况。第6章介绍Java并发包中的CompletionService的使用,因为可以以异步的方式获得任务执行的结果,所以该接口可以增强程序运行效率。第7章介绍接口ExecutorService,该接口提供了若干工具方法来方便执行并发业务。第8章主要介绍ScheduledExecutorService的使用,以掌握如何将计划任务与线程池结合使用。第9章主要介绍Fork-Join分治编程,以提升多核CPU的优势,加快程序运行效率。第10章主要介绍并发集合框架,利用好并发框架,事半功倍。

作者简介

高洪岩某世界500强企业高级项目经理,10余年项目管理与开发经验,10年Java相关开发经验,深谙Java技术开发难点与要点,拥有良好的技术素养和丰富的实践经验。精通J2EE核心技术、基于EJB的分布式系统开发、Android移动开发、智能报表、多线程及高并发等相关的技术内容,近期继续关注并发相关的前沿技术。著有技术畅销书《Java多线程编程核心技术》,喜欢将技术与教育相结合的方式共享知识,得以共同提高。生活中喜欢摄影, 对轮滑,旅游,航模亦兴趣浓厚。

目录

前言第1章 Semaphore和Exchanger的使用 11.1 Semaphore的使用 21.1.1 类Semaphore的同步性 21.1.2 类Semaphore构造方法permits参数作用 41.1.3 方法acquire(int permits)参数作用及动态添加permits许可数量 51.1.4 方法acquireUninterruptibly()的使用 81.1.5 方法availablePermits()和drainPermits() 101.1.6 方法getQueueLength()和hasQueuedThreads() 121.1.7 公平与非公平信号量的测试 131.1.8 方法tryAcquire()的使用 151.1.9 方法tryAcquire(int permits)的使用 171.1.10 方法tryAcquire(long timeout, TimeUnit unit)的使用 171.1.11 方法tryAcquire(int permits, long timeout, TimeUnit unit)的使用 191.1.12 多进路-多处理-多出路实验 201.1.13 多进路-单处理-多出路实验 211.1.14 使用Semaphore创建字符串池 231.1.15 使用Semaphore实现多生产者/多消费者模式 251.2 Exchanger的使用 311.2.1 方法exchange()阻塞的特性 311.2.2 方法exchange()传递数据 321.2.3 方法exchange(V x, long timeout, TimeUnit unit)与超时 341.3 本章总结 35第2章 CountDownLatch和CyclicBarrier的使用 362.1 CountDownLatch的使用 362.1.1 初步使用 372.1.2 裁判在等全部的运动员到来 382.1.3 各就各位准备比赛 392.1.4 完整的比赛流程 412.1.5 方法await(long timeout, TimeUnit unit) 442.1.6 方法getCount()的使用 462.2 CyclicBarrier的使用 462.2.1 初步使用 482.2.2 验证屏障重置性及getNumberWaiting()方法的使用 512.2.3 用CyclicBarrier类实现阶段跑步比赛 522.2.4 方法isBroken()的使用 552.2.5 方法await(long timeout, TimeUnit unit)超时出现异常的测试 572.2.6 方法getNumberWaiting()和getParties() 602.2.7 方法reset() 622.3 本章总结 64第3章 Phaser的使用 653.1 Phaser的使用 663.2 类Phaser的arriveAndAwaitAdvance()方法测试1 663.3 类Phaser的arriveAndAwaitAdvance()方法测试2 683.4 类Phaser的arriveAndDeregister()方法测试 693.5 类Phaser的getPhase()和onAdvance()方法测试 703.6 类Phaser的getRegisteredParties()方法和register()测试 743.7 类Phaser的bulkRegister()方法测试 753.8 类Phaser的getArrivedParties()和getUnarrivedParties()方法测试 753.9 类Phaser的arrive()方法测试1 773.10 类Phaser的arrive ()方法测试2 783.11 类Phaser的awaitAdvance(int phase)方法测试 813.12 类Phaser的awaitAdvanceInterruptibly(int)方法测试1 833.13 类Phaser的awaitAdvanceInterruptibly(int)方法测试2 843.14 类Phaser的awaitAdvanceInterruptibly(int)方法测试3 863.15 类Phaser的awaitAdvanceInterruptibly(int,long,TimeUnit)方法测试4 873.16 类Phaser的forceTermination()和isTerminated()方法测试 893.17 控制Phaser类的运行时机 923.18 本章总结 93第4章 Executor与ThreadPoolExecutor的使用 944.1 Executor接口介绍 944.2 使用Executors工厂类创建线程池 974.2.1 使用newCachedThreadPool()方法创建无界线程池 984.2.2 验证newCachedThreadPool()创建为Thread池 1004.2.3 使用newCachedThreadPool (ThreadFactory)定制线程工厂 1024.2.4 使用newFixedThreadPool(int)方法创建有界线程池 1034.2.5 使用newFixedThreadPool(int, ThreadFactory)定制线程工厂 1054.2.6 使用newSingleThreadExecutor()方法创建单一线程池 1064.2.7 使用newSingleThreadExecutor(ThreadFactory)定制线程工厂 1074.3 ThreadPoolExecutor的使用 1074.3.1 构造方法的测试 1074.3.2 方法shutdown()和shutdownNow()与返回值 1194.3.3 方法isShutdown() 1294.3.4 方法isTerminating ()和isTerminated () 1294.3.5 方法awaitTermination(long timeout,TimeUnit unit) 1314.3.6 工厂ThreadFactory+execute()+UncaughtExceptionHandler处理异常 1344.3.7 方法set/getRejectedExecutionHandler() 1384.3.8 方法allowsCoreThreadTimeOut()/(boolean) 1404.3.9 方法prestartCoreThread()和prestartAllCoreThreads() 1424.3.10 方法getCompletedTaskCount() 1444.3.11 常见3种队列结合max值的因果效果 1454.3.12 线程池ThreadPoolExecutor的拒绝策略 1514.3.13 方法afterExecute()和beforeExecute() 1574.3.14 方法remove(Runnable)的使用 1594.3.15 多个get方法的测试 1624.3.16 线程池ThreadPoolExecutor与Runnable执行为乱序特性 1664.4 本章总结 167第5章 Future和Callable的使用 1685.1 Future和Callable的介绍 1685.2 方法get()结合ExecutorService中的submit(Callable)的使用 1685.3 方法get()结合ExecutorService中的submit(Runnable)和isDone()的使用 1705.4 使用ExecutorService接口中的方法submit(Runnable, T result) 1705.5 方法cancel(boolean mayInterruptIfRunning)和isCancelled()的使用 1735.6 方法get(long timeout, TimeUnit unit)的使用 1785.7 异常的处理 1795.8 自定义拒绝策略RejectedExecutionHandler接口的使用 1815.9 方法execute()与submit()的区别 1825.10 验证Future的缺点 1865.11 本章总结 188第6章 CompletionService的使用 1896.1 CompletionService介绍 1896.2 使用CompletionService解决Future的缺点 1906.3 使用take()方法 1936.4 使用poll()方法 1946.5 使用poll(long timeout, TimeUnit unit)方法 1956.6 类CompletionService与异常 1996.7 方法Future submit(Runnable task, V result)的测试 2056.8 本章总结 207第7章 接口ExecutorService的方法使用 2087.1 在ThreadPoolExecutor中使用ExecutorService中的方法 2087.2 方法invokeAny(Collection tasks)的使用与interrupt 2097.3 方法invokeAny()与执行慢的任务异常 2127.4 方法invokeAny()与执行快的任务异常 2167.5 方法invokeAny()与全部异常 2207.6 方法invokeAny(CollectionTasks, timeout, timeUnit)超时的测试 2227.7 方法invokeAll(Collection tasks)全正确 2267.8 方法invokeAll(Collection tasks)快的正确慢的异常 2277.9 方法invokeAll(Collection tasks)快的异常慢的正确 2307.10 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)先慢后快 2327.11 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)先快后慢 2347.12 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)全慢 2367.13 本章总结 238第8章 计划任务ScheduledExecutorService的使用 2398.1 ScheduledExecutorService的使用 2408.2 ScheduledThreadPoolExecutor使用Callable延迟运行 2418.3 ScheduledThreadPoolExecutor使用Runnable延迟运行 2448.4 延迟运行并取得返回值 2458.5 使用scheduleAtFixedRate()方法实现周期性执行 2468.6 使用scheduleWithFixedDelay()方法实现周期性执行 2488.7 使用getQueue()与remove()方法 2508.8 方法setExecuteExistingDelayedTasksAfterShutdownPolicy()的使用 2538.9 方法setContinueExistingPeriodicTasksAfterShutdownPolicy() 2558.10 使用cancel(boolean)与setRemoveOnCancelPolicy()方法 2578.11 本章总结 261第9章 Fork-Join分治编程 2629.1 Fork-Join分治编程与类结构 2629.2 使用RecursiveAction让任务跑起来 2649.3 使用RecursiveAction分解任务 2659.4 使用RecursiveTask取得返回值与join()和get()方法的区别 2669.5 使用RecursiveTask执行多个任务并打印返回值 2709.6 使用RecursiveTask实现字符串累加 2729.7 使用Fork-Join实现求和:实验1 2739.8 使用Fork-Join实现求和:实验2 2759.9 类ForkJoinPool核心方法的实验 2769.9.1 方法public void execute(ForkJoinTask task)的使用 2769.9.2 方法public void execute(Runnable task)的使用 2789.9.3 方法public void execute(ForkJoinTask task)如何处理返回值 2789.9.4 方法public ForkJoinTask submit(ForkJoinTask task)的使用 2799.9.5 方法public ForkJoinTask submit(Runnable task)的使用 2809.9.6 方法public ForkJoinTask submit(Callable task)的使用 2819.9.7 方法public ForkJoinTask submit(Runnable task, T result)的使用 2829.9.8 方法public List> invokeAll(Collection> tasks)的使用 2859.9.9 方法public void shutdown()的使用 2869.9.10 方法public List shutdownNow()的使用 2899.9.11 方法isTerminating()和isTerminated()的使用 2929.9.12 方法public boolean isShutdown()的使用 2959.9.13 方法public boolean awaitTermination(long timeout, TimeUnit unit)的使用 2979.9.14 方法public T invoke(ForkJoinTask task)的使用 2999.9.15 监视pool池的状态 3019.10 类ForkJoinTask对异常的处理 3089.11 本章总结 309第10章 并发集合框架 31010.1 集合框架结构简要 31010.1.1 接口Iterable 31010.1.2 接口Collection 31110.1.3 接口List 31110.1.4 接口Set 31210.1.5 接口Queue 31210.1.6 接口Deque 31210.2 非阻塞队列 31310.2.1 类ConcurrentHashMap的使用 31310.2.2 类ConcurrentSkipListMap的使用 32210.2.3 类ConcurrentSkipListSet的使用 32510.2.4 类ConcurrentLinkedQueue的使用 32810.2.5 类ConcurrentLinkedDeque的使用 33010.2.6 类CopyOnWriteArrayList的使用 33210.2.7 类CopyOnWriteArraySet的使用 33510.3 阻塞队列 33710.3.1 类ArrayBlockingQueue的使用 33710.3.2 类PriorityBlockingQueue的使用 33810.3.3 类LinkedBlockingQueue的使用 34010.3.4 类LinkedBlockingDeque的使用 34110.3.5 类SynchronousQueue的使用 34110.3.6 类DelayQueue的使用 34410.3.7 类LinkedTransferQueue的使用 34510.4 本章总结 354



商品基本信息
商品名称:  Java多线程编程核心技术
作者:  高洪岩
市场价:  69.00
ISBN号:  9787111502067
版次:  1-1
出版日期:  2015-06
页数:  306
字数:  200
出版社:  机械工业出版社



内容介绍


   内容简介
    全书共7章。D1章讲解了Java多线程的基础,重点介绍线程类的核心API的使用。D2章讲解对并发访问的控制,即如何写出线程安全的程序。D3章介绍线程间通信,以提高CPU利用率和系统间的交互,同时增强对线程任务的把控与监督。D4章讲解Lock对象,以更好实现并发访问时的同步处理。D5章讲解移动开发中使用较多的定时器类的多线程技术,这是计划/任务执行里很重要的技术点。D6章讲解如何安全、正确地将单例模式与多线程技术相结合,避免实际应用中可能会出现的麻烦。D7章将前面被遗漏的案例在本章节中进行补充,尽量做到不出现技术空白点。