并发编程理论与实践

并发编程理论与实践
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2019-06
版次: 1
ISBN: 9787302516781
定价: 49.00
装帧: 平装
开本: 16
纸张: 胶版纸
页数: 277页
字数: 424千字
4人买过
  • 本书在Java编程语言的基础上,对并发编程的相关概念、基本原理、方法和技术进行了详细讲解,内容涉及线程同步和障栅、线程间通信、执行器、Fork/Join框架和并行流处理等内容。本书在讲解并发编程基本知识的同时,大量使用实例进行演示,力求做到内容透彻。本书内容先进翔实、知识结构合理、例题丰富、深入浅出,既适合作为普通高校和工程类院校学生学习高性能程序设计的教材,又适合作为IT领域人员学习Java并发编程技术的工具书,同时也可以作为那些需要掌握高性能计算技术的人员的自学参考用书。 目录 
    第1章绪论1 
    1.1概述1 
    1.2概念和术语2 
    1.2.1并发与并行2 
    1.2.2串行执行和顺序执行4 
    1.2.3超线程4 
    1.2.4加速比5 
    1.3Java并发方面的特性5 
    1.4并发/并行程序设计的方法6 
    1.4.1分治方法6 
    1.4.2流水线7 
    1.4.3消息传递8 
    1.5并发程序的评判标准8 
    1.6Java内存模型9 
    1.7程序的运行说明10第2章线程13 
    2.1进程与线程13 
    2.2线程的创建14 
    2.2.1继承Thread类14 
    2.2.2实现Runnable接口16 
    2.2.3两种方法的比较18 
    2.2.4相关说明18 
    2.3线程的属性18 
    2.3.1线程标识符18 
    2.3.2线程名20 
    2.3.3线程状态23 
    2.3.4线程的优先级和调度27 
    2.3.5守护线程30 
    2.4线程管理33 
    2.4.1join()方法33 
    2.4.2sleep()方法37 
    2.4.3yield()方法38 
    2.4.4interrupt()方法38 
    2.4.5其他方法40 
    2.5线程分组40 
    2.6线程数目的确定43 
    2.7线程本地化44 
    2.8带返回值的线程47 
    2.8.1Callable接口47 
    2.8.2Future接口47 
    2.8.3Callable与Runnable的比较50 
    2.9案例分析51 
    小结61 
    习题61第3章线程同步控制62 
    3.1为什么要使用同步控制62 
    3.2基本概念64 
    3.2.1数据竞争64 
    3.2.2临界区65 
    3.2.3监视器65 
    3.2.4阻塞和非阻塞66 
    3.2.5线程安全与线程不安全66 
    3.3锁67 
    3.3.1同步锁67 
    3.3.2可重入锁70 
    3.3.3读写锁77 
    3.3.4邮戳锁83 
    3.3.5几种锁机制的比较89 
    3.3.6锁的不足之处90 
    3.3.7减少锁竞争的方法90 
    3.3.8死锁和活锁91 
    3.4volatile变量96 
    3.5原子操作96 
    3.5.1基本类型的原子类97 
    3.5.2一般引用类型的原子类100 
    3.5.3ABA问题102 
    3.5.4扩展的原子引用类型105 
    3.5.5原子操作数组类111 
    小结116 
    习题117第4章线程间通信118 
    4.1等待集合118 
    4.2wait()/notify()/notifyAll()方法118 
    4.2.1wait()方法118 
    4.2.2notify()方法119 
    4.2.3notifyAll()方法119 
    4.2.4实例120 
    4.3条件变量126 
    4.3.1await()方法127 
    4.3.2signal()方法128 
    4.3.3signalAll()方法128 
    4.3.4实例128 
    习题131第5章线程同步障栅132 
    5.1障栅132 
    5.2倒计时门闩137 
    5.3信号量140 
    5.4同步队列145 
    5.5交换器148 
    5.6阶段化处理152 
    习题160第6章线程执行器161 
    6.1线程池161 
    6.1.1Executor接口161 
    6.1.2ExecutorService接口162 
    6.1.3ThreadPoolExecutor类162 
    6.1.4工厂类Executors163 
    6.1.5使用线程执行器处理没有返回值的线程164 
    6.2固定数目的线程执行器166 
    6.3使用线程执行器处理有返回值的线程168 
    6.4延迟执行、周期性执行的执行器171 
    6.4.1ScheduledExecutorService接口171 
    6.4.2ScheduledFuture接口172 
    6.4.3举例173 
    6.5取消任务的执行176 
    6.6任务装载和结果处理的分离177 
    6.7管理被拒绝的任务179第7章Fork/Join框架183 
    7.1概述183 
    7.2相关知识184 
    7.2.1负载均衡184 
    7.2.2分治方法184 
    7.2.3工作窃取算法185 
    7.3Fork/Join框架的编程模式185 
    7.4ForkJoinPool类186 
    7.4.1ForkJoinPool的创建186 
    7.4.2ForkJoinPool的使用187 
    7.5Fork/Join框架中的任务188 
    7.5.1任务的创建188 
    7.5.2任务的运行方式196 
    7.5.3任务的取消199 
    7.6Fork/Join框架的限制202 
    7.7几种线程机制的比较202 
    习题202第8章流处理203 
    8.1Lambda表达式203 
    8.1.1Lambda表达式的定义203 
    8.1.2Lambda表达式的使用204 
    8.2函数式接口Predicate205 
    8.3流206 
    8.3.1流简介206 
    8.3.2创建流207 
    8.3.3流的操作208第9章自定义并发类211 
    9.1自定义线程工厂211 
    9.2自定义线程池213 
    9.3在执行器中使用自定义的线程工厂215 
    9.4自定义周期性任务216 
    9.5自定义与Fork/Join框架相关的并发类221 
    9.5.1ForkJoinWorkerThread类221 
    9.5.2ForkJoinPool.ForkJoinWorkerThreadFactory接口221 
    9.5.3自定义Fork/Join框架中的线程222 
    9.5.4自定义任务224 
    9.6自定义同步类227 
    9.6.1自定义锁227 
    9.6.2自定义原子操作231 
    习题233第10章线程安全的集合234 
    10.1线程安全的双端队列234 
    10.2线程安全的哈希表238 
    10.3线程安全的跳表240 
    10.4随机数产生242 
    10.5并行数组244第11章多线程程序的性能和测试246 
    11.1性能246 
    11.2可伸缩性248 
    11.3多线程程序的测试248第12章面向切面技术在并发编程中的应用249 
    12.1相关知识249 
    12.1.1面向切面编程249 
    12.1.2Java注释接口251 
    12.2类方法的并发执行254 
    12.2.1问题的提出254 
    12.2.2并行库255 
    12.2.3基于面向方面技术的并行库易用性优化260 
    12.2.4实验262 
    12.2.5小结266 
    12.3实现被标记的类方法的并发执行267 
    12.4使用面向切面技术分离并发关注点269 
    12.4.1问题演示269 
    12.4.2重构框架271 
    12.4.3实验评估 274 
    习题277 

  • 内容简介:
    本书在Java编程语言的基础上,对并发编程的相关概念、基本原理、方法和技术进行了详细讲解,内容涉及线程同步和障栅、线程间通信、执行器、Fork/Join框架和并行流处理等内容。本书在讲解并发编程基本知识的同时,大量使用实例进行演示,力求做到内容透彻。本书内容先进翔实、知识结构合理、例题丰富、深入浅出,既适合作为普通高校和工程类院校学生学习高性能程序设计的教材,又适合作为IT领域人员学习Java并发编程技术的工具书,同时也可以作为那些需要掌握高性能计算技术的人员的自学参考用书。
  • 目录:
    目录 
    第1章绪论1 
    1.1概述1 
    1.2概念和术语2 
    1.2.1并发与并行2 
    1.2.2串行执行和顺序执行4 
    1.2.3超线程4 
    1.2.4加速比5 
    1.3Java并发方面的特性5 
    1.4并发/并行程序设计的方法6 
    1.4.1分治方法6 
    1.4.2流水线7 
    1.4.3消息传递8 
    1.5并发程序的评判标准8 
    1.6Java内存模型9 
    1.7程序的运行说明10第2章线程13 
    2.1进程与线程13 
    2.2线程的创建14 
    2.2.1继承Thread类14 
    2.2.2实现Runnable接口16 
    2.2.3两种方法的比较18 
    2.2.4相关说明18 
    2.3线程的属性18 
    2.3.1线程标识符18 
    2.3.2线程名20 
    2.3.3线程状态23 
    2.3.4线程的优先级和调度27 
    2.3.5守护线程30 
    2.4线程管理33 
    2.4.1join()方法33 
    2.4.2sleep()方法37 
    2.4.3yield()方法38 
    2.4.4interrupt()方法38 
    2.4.5其他方法40 
    2.5线程分组40 
    2.6线程数目的确定43 
    2.7线程本地化44 
    2.8带返回值的线程47 
    2.8.1Callable接口47 
    2.8.2Future接口47 
    2.8.3Callable与Runnable的比较50 
    2.9案例分析51 
    小结61 
    习题61第3章线程同步控制62 
    3.1为什么要使用同步控制62 
    3.2基本概念64 
    3.2.1数据竞争64 
    3.2.2临界区65 
    3.2.3监视器65 
    3.2.4阻塞和非阻塞66 
    3.2.5线程安全与线程不安全66 
    3.3锁67 
    3.3.1同步锁67 
    3.3.2可重入锁70 
    3.3.3读写锁77 
    3.3.4邮戳锁83 
    3.3.5几种锁机制的比较89 
    3.3.6锁的不足之处90 
    3.3.7减少锁竞争的方法90 
    3.3.8死锁和活锁91 
    3.4volatile变量96 
    3.5原子操作96 
    3.5.1基本类型的原子类97 
    3.5.2一般引用类型的原子类100 
    3.5.3ABA问题102 
    3.5.4扩展的原子引用类型105 
    3.5.5原子操作数组类111 
    小结116 
    习题117第4章线程间通信118 
    4.1等待集合118 
    4.2wait()/notify()/notifyAll()方法118 
    4.2.1wait()方法118 
    4.2.2notify()方法119 
    4.2.3notifyAll()方法119 
    4.2.4实例120 
    4.3条件变量126 
    4.3.1await()方法127 
    4.3.2signal()方法128 
    4.3.3signalAll()方法128 
    4.3.4实例128 
    习题131第5章线程同步障栅132 
    5.1障栅132 
    5.2倒计时门闩137 
    5.3信号量140 
    5.4同步队列145 
    5.5交换器148 
    5.6阶段化处理152 
    习题160第6章线程执行器161 
    6.1线程池161 
    6.1.1Executor接口161 
    6.1.2ExecutorService接口162 
    6.1.3ThreadPoolExecutor类162 
    6.1.4工厂类Executors163 
    6.1.5使用线程执行器处理没有返回值的线程164 
    6.2固定数目的线程执行器166 
    6.3使用线程执行器处理有返回值的线程168 
    6.4延迟执行、周期性执行的执行器171 
    6.4.1ScheduledExecutorService接口171 
    6.4.2ScheduledFuture接口172 
    6.4.3举例173 
    6.5取消任务的执行176 
    6.6任务装载和结果处理的分离177 
    6.7管理被拒绝的任务179第7章Fork/Join框架183 
    7.1概述183 
    7.2相关知识184 
    7.2.1负载均衡184 
    7.2.2分治方法184 
    7.2.3工作窃取算法185 
    7.3Fork/Join框架的编程模式185 
    7.4ForkJoinPool类186 
    7.4.1ForkJoinPool的创建186 
    7.4.2ForkJoinPool的使用187 
    7.5Fork/Join框架中的任务188 
    7.5.1任务的创建188 
    7.5.2任务的运行方式196 
    7.5.3任务的取消199 
    7.6Fork/Join框架的限制202 
    7.7几种线程机制的比较202 
    习题202第8章流处理203 
    8.1Lambda表达式203 
    8.1.1Lambda表达式的定义203 
    8.1.2Lambda表达式的使用204 
    8.2函数式接口Predicate205 
    8.3流206 
    8.3.1流简介206 
    8.3.2创建流207 
    8.3.3流的操作208第9章自定义并发类211 
    9.1自定义线程工厂211 
    9.2自定义线程池213 
    9.3在执行器中使用自定义的线程工厂215 
    9.4自定义周期性任务216 
    9.5自定义与Fork/Join框架相关的并发类221 
    9.5.1ForkJoinWorkerThread类221 
    9.5.2ForkJoinPool.ForkJoinWorkerThreadFactory接口221 
    9.5.3自定义Fork/Join框架中的线程222 
    9.5.4自定义任务224 
    9.6自定义同步类227 
    9.6.1自定义锁227 
    9.6.2自定义原子操作231 
    习题233第10章线程安全的集合234 
    10.1线程安全的双端队列234 
    10.2线程安全的哈希表238 
    10.3线程安全的跳表240 
    10.4随机数产生242 
    10.5并行数组244第11章多线程程序的性能和测试246 
    11.1性能246 
    11.2可伸缩性248 
    11.3多线程程序的测试248第12章面向切面技术在并发编程中的应用249 
    12.1相关知识249 
    12.1.1面向切面编程249 
    12.1.2Java注释接口251 
    12.2类方法的并发执行254 
    12.2.1问题的提出254 
    12.2.2并行库255 
    12.2.3基于面向方面技术的并行库易用性优化260 
    12.2.4实验262 
    12.2.5小结266 
    12.3实现被标记的类方法的并发执行267 
    12.4使用面向切面技术分离并发关注点269 
    12.4.1问题演示269 
    12.4.2重构框架271 
    12.4.3实验评估 274 
    习题277 

查看详情
相关图书 / 更多
并发编程理论与实践
并发模式与应用实践
[印度]阿图尔·S. 科德(Atul S. Khot)
并发编程理论与实践
并发程序设计基础教程
赵煜辉 编
并发编程理论与实践
并发的艺术
[美]布雷谢斯(Clay Breshears) 著;聂雪军 译
您可能感兴趣 / 更多
并发编程理论与实践
城市轨道交通自动售检票系统使用与维护(智媒体版)
张杨 编;陈舒萍;万学春;陈亮
并发编程理论与实践
革命与艺术:石鲁艺术研究
张杨 著
并发编程理论与实践
通往冈仁波齐的路
张杨 著
并发编程理论与实践
西方儿童权利理论及其当代价值研究
张杨 著
并发编程理论与实践
中华国学阅读——修身明德诵读(单色)
张杨 编;李乡状 主编
并发编程理论与实践
中华国学阅读——诸子百家(单色)
张杨 编;李乡状 主编
并发编程理论与实践
中华国学阅读. 诵读模范文本
张杨 编著;李乡状 主编
并发编程理论与实践
中华国学阅读. 韬略智慧
张杨 编著;李乡状 主编
并发编程理论与实践
中华国学阅读. 章回小说
张杨 编著;李乡状 主编
并发编程理论与实践
古玩风云之战国黄金面具
张杨 著
并发编程理论与实践
3ds mas 8.0、Corel DRAW12、Lightscape2004和Photoshop CS2室内设计实例指导教程
张杨 编
并发编程理论与实践
大学英语阅读教程.第一册
张杨 主编