• Java多线程与线程池技术详解
  • Java多线程与线程池技术详解
  • Java多线程与线程池技术详解
  • Java多线程与线程池技术详解
  • Java多线程与线程池技术详解
  • Java多线程与线程池技术详解
  • Java多线程与线程池技术详解
  • Java多线程与线程池技术详解
  • Java多线程与线程池技术详解
21年品牌 40万+商家 超1.5亿件商品

Java多线程与线程池技术详解

全新正版 急速发货

57.8 7.3折 79 全新

库存10件

天津武清
认证卖家担保交易快速发货售后保障

作者肖海鹏 牟东旭

出版社清华大学出版社

ISBN9787302573739

出版时间2021-05

装帧平装

开本16开

定价79元

货号29248168

上书时间2024-12-27

当科图书专营店

五年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言

一、为什么要写本书
1965年,戈登·摩尔发现了一个惊人的集成电路发展趋势:当价格不变时,集成电路上可容纳的元器件的数目,每18~24个月会增加一倍,性能也将提升一倍。如果这个趋势继续,计算能力相对于时间周期将呈指数式的上升,这被称为摩尔定律。
50多年过去了,摩尔定律目前仍然没有被打破,但是马上就要面临巨大的物理瓶颈。现在的好的芯片技术是台积电的5nm工艺,下一个目标是3nm,而硅原子在1nm空间只能排列三四个。这对于依赖硅为半导体材料的芯片产业而言,如果没有新的半导体材料出现,其很快就将面临物理极限挑战。
多核处理器技术是硬件发展的另一大趋势。通过使用CPU多核架构,可以有效缓解单个芯片运算能力不足带来的尴尬。现在几乎所有的笔记本计算机、台式计算机,还有服务器等普遍使用了多核处理器。多核CPU的普及要求系统软件和应用软件架构必须要与时俱进。因此,掌握并发编程技术,开发出适用于多核处理器的并发程序,充分利用CPU的并发处理优势,是对所有高级软件开发人员的硬性要求。
目前,Java平台在服务器端的后台编程中占据着无法动摇的统治地位,如典型的Web服务器就是一个允许几十万人同时访问的高并发环境。因此Java的高并发编程是每一个Java编程人员必须要掌握的核心知识。
高并发处理不仅在Web服务器上,在应用服务器、数据库服务器、大数据服务器等服务器上,同样都是高并发环境,当然在不同服务器上的软件架构是完全不同的。
多线程的并发编程从来都不是一件容易的事情,即使对高级软件架构人员也是如此。Java平台关于多线程部分的API,历经多次频繁地调整,始终无法稳定下来,死锁和CPU利用率不高一直困扰着这些高级架构师。直到2004年,大神级的Doug Lea横空出世,在JDK5中推出了java.util.concurrent 开发包,这才使Java彻底稳住了阵脚。
Java多线程基础库稳定后,服务器并发编程技术发展迅速,目前基于Java EE 8规范的服务器性能更加优秀。本书中包含的所有案例均基于JDK1.8 版本并已调试成功。
   二、内容特色
与同类书籍相比,本书有如下特色。
1. 案例生动易懂,读者入门容易
国外关于多线程编程的经典图书,大多晦涩难懂,让人看后感觉云山雾罩、一头雾水;国内多线程相关书籍又过于浅显。因此,市场上没有一本让多数读者感觉满意的多线程图书,尤其是高校本科生和研究生,想选择一本多线程教材是非常困难的。本书中的大量案例,都贴合实际生活,生动鲜活,容易记忆,容易理解,读者可以轻松上手。
2. 原理透彻,注重应用
本书对多线程相关理论分门别类、层层递进地进行了详细的叙述和透彻的分析,既体现了各知识点之间的联系,又兼顾了其渐近性。本书在介绍每个知识点时都给出了该知识点的应用场景,同时配合源代码分析;本书真正体现了理论联系实际的理念,使读者能够体会到“学以致用”的乐趣。
3. 配套资源,超值服务
本书提供以下相关配套资源:
* 书中涉及的程序代码、习题答案,可以关注“人工智能科学与技术”微信公众号,在“知识”→“资源下载”→“配书资源”菜单获取下载链接(也可以到清华大学出版社网站本书页面下载)。
* 本书有完整的配套视频,可以到CSDN、51CTO、腾讯课堂等网站观看,简单的入口就是在百度直接搜索:肖海鹏,即可找到各网站的视频入口。在配套资源中也有视频观看链接(注:配套视频请读者自行购买观看)。
   三、结构安排
本书第1~3章为多线程基础知识,第4~8章为线程池技术,第9章和第10章为多线程技术应用。
   四、读者对象
* 电子信息工程、计算机科学与技术相关专业的本科生、研究生;
* 所有Java软件开发人员。
   五、致谢
限于编者的水平和经验,加之时间比较仓促,疏漏之处在所难免,敬请读者批评指正,有兴趣的朋友可发送邮件至workemail6@163.com。

编者
2021年3月于北京



导语摘要

《Java多线程与线程池技术详解》全面、系统地讲解了多线程和线程池技术。   《Java多线程与线程池技术详解》共分为10章,第1~3章为基本的多线程技术基础,包含创建线程、线程状态转换、线程间同步等内容。第4~8章为线程池技术,包含自定义线程池、通过Executors工具类创建线程池、线程池的底层阻塞队列结构、重入锁等内容。第9章和第10章为多线程技术的应用部分,包含基于Tomcat的线程池应用、基于ThreadLocal的数据库连接管理、生成*的订单号等内容。   《Java多线程与线程池技术详解》提供了大量应用实例,每章后面均附有习题。 《Java多线程与线程池技术详解》适合作为高等院校计算机、软件工程专业高年级本科生、研究生的教材,同时可供有一定编程经验的软件开发人员、广大科技工作者和研究人员在进行多线程编程时参考使用。



作者简介

肖海鹏  人力资源和社会保障部高级职称;51CTO金牌讲师;具有10年大型项目经验和10年Java教学经验;曾任职E龙网架构师、TechFaith系统工程师等。在网络上推出了“Java Web应用开发技术”“SSM SpringBoot实战技术”“多线程与线程池技术详解”等视频教程,广受网友好评。
牟东旭  富景天策(北京)科技集团公司高级项目经理。多年从事互联网一线开发工作,曾在某互联网教育机构担任高级讲师,精通SSM、SpringBoot、SpringCloud等主流Java开源框架以及Hadoop、Kafka、Hive、HBASE Storm、Spark、Kylin等主流大数据技术。目前专注于专业气象服务领域的产品策划、技术架构和产品开发工作。



目录

第1章  多线程基础 1
1.1  进程与线程 1
1.1.1  操作系统与进程 1
1.1.2  线程与进程的关系 2
1.2  多线程启动 3
1.2.1  线程标识 5
1.2.2  Thread与Runnable 6
1.2.3  run()与start() 7
1.2.4  Thread源码分析 9
1.3  线程状态 11
1.3.1  NEW状态 11
1.3.2  RUNNABLE状态 12
1.3.3  BLOCKED状态 13
1.3.4  WAITING状态 14
1.3.5  TIMED_WAITING状态 19
1.3.6  WAITING与BLOCKED的区别 21
1.3.7  TERMINATED状态 21
1.3.8  线程状态转换 22
1.4  sleep()与yield() 22
1.4.1  线程休眠sleep() 22
1.4.2  线程让步yield() 24
1.5  线程优先级 25
1.5.1  线程优先级与资源竞争 26
1.5.2  案例:大型浮点运算测试 26
1.5.3  案例:多线程售票 28
1.6  守护线程 30
1.6.1  守护线程的概念 30
1.6.2  案例:清道夫与工作者 31
1.7  本章习题 34
第2章  线程安全与共享资源竞争 37
2.1  synchronized同步介绍 37
2.2  synchronized同步方法 38
2.2.1  同步方法调用流程 41
2.2.2  同步方法之间的互斥 41
2.2.3  同步方法与非同步方法 44
2.3  synchronized同步静态方法 46
2.3.1  单例高并发问题 46
2.3.2  类锁与对象锁 47
2.3.3  静态同步方法之间互斥 47
2.3.4  静态同步方法与静态非同步方法 49
2.4  synchronized同步代码块 50
2.4.1  锁当前对象 50
2.4.2  锁其他对象 51
2.4.3  锁Class 51
2.5  项目案例:火车售票 52
2.5.1  共享任务模式 52
2.5.2  多任务模式 55
2.5.3  共享车票资源 56
2.6  项目案例:家庭消费 59
2.7  项目案例:别墅Party 63
2.7.1  无锁模式 63
2.7.2  单锁模式 66
2.7.3  双锁模式 67
2.8  JDK常见类的线程安全性 69
2.8.1  集合ArrayList与Vector 69
2.8.2  StringBuffer与StringBuilder 71
2.8.3  HashMap与ConcurrentHashMap 72
2.9  本章习题 73
第3章  多线程通信 76
3.1  wait()与notify() 76
3.1.1  阻塞当前线程 76
3.1.2  案例分析:厨师与侍者1 78
3.1.3  案例分析:厨师与侍者2 81
3.1.4  案例分析:两个线程交替输出信息 85
3.2  join线程排队 87
3.2.1  加入者与休眠者 87
3.2.2  案例:紧急任务处理 89
3.2.3  join限时阻塞 91
3.3  线程中断 93
3.3.1  中断运行态线程 93
3.3.2  中断阻塞态线程 95
3.3.3  如何停止线程 97
3.4  CountDownLatch计数器 98
3.5  CyclicBarrier屏障 100
3.5.1  案例:矩阵分行处理 101
3.5.2  案例:赛马游戏 103
3.6  Exchanger 104
3.7  Semaphore信号灯 107
3.8  死锁 108
3.8.1  案例:银行转账引发死锁 109
3.8.2  案例:哲学家就餐死锁 112
3.9  本章习题 115
第4章  线程池入门 117
4.1  ThreadPoolExecutor 117
4.1.1  创建线程池 118
4.1.2  关闭线程池 121
4.2  Executor接口 123
4.3  ExecutorService接口 124
4.3.1  Callable返回任务执行结果 125
4.3.2  shutdown与shutdownNow 127
4.4  Executors工具箱 127
4.4.1  newCachedThreadPool 128
4.4.2  newFixedThreadPool 133
4.4.3  newSingleThreadExecutor 137
4.4.4  newScheduledThreadPool 141
4.4.5  newWorkStealingPool 143
4.5  线程工厂与线程组 151
4.5.1  线程组 151
4.5.2  线程与线程组 152
4.5.3  线程工厂接口 155
4.5.4  默认线程工厂实现 156
4.5.5  线程池与线程工厂 157
4.6  线程池异常处理 158
4.6.1  异常捕获 158
4.6.2  UncaughtExceptionHandler处理异常 158
4.6.3  Future处理异常 161
4.7  本章习题 163
第5章  线程池与锁 165
5.1  重入锁ReentrantLock 165
5.1.1  重入锁 166
5.1.2  互斥锁 167
5.1.3  ReentrantLock与synchronized 169
5.1.4  尝试加锁并限时等待 171
5.2  重入锁与Condition 173
5.2.1  案例分析:厨师与侍者 176
5.2.2  案例分析:缓冲区队列 178
5.3  读锁与写锁 181
5.3.1  案例:并发读写集合 182
5.3.2  案例:Map并发控制 193
5.3.3  数据库事务与锁 197
5.4  公平锁与非公平锁 198
5.5  本章习题 201
第6章  线程池与阻塞队列 202
6.1  Queue接口 202
6.2  BlockingQueue接口 202
6.3  BlockingQueue实现类 203
6.4  LinkedBlockingQueue与ArrayBlockingQueue 203
6.4.1  阻塞队列的单锁与双锁 204
6.4.2  ArrayBlockingQueue并发分析 205
6.4.3  LinkedBlockingQueue并发分析 206
6.4.4  案例:12306抢票 208
6.5  生产者与消费者模式 210
6.5.1  基于管道发送与接收消息 211
6.5.2  基于阻塞队列发送与接收消息 213
6.5.3  案例:医院挂号 213
6.6  SynchronousQueue 217
6.6.1  同步队列应用场景 217
6.6.2  案例:Web服务器处理并发请求 218
6.7  延迟阻塞队列 220
6.7.1  案例:元素延迟出队 221
6.7.2  项目案例:Web服务器会话管理 222
6.8  PriorityBlockingQueue 226
案例:按优先级执行任务 226
6.9  LinkedTransferQueue 228
6.10  LinkedBlockingDeque 229
6.11  本章习题 229
第7章  线程池与AQS 231
7.1  acquire与release 231
7.2  性能目标 232
7.3  设计与实现 233
7.3.1  同步状态 233
7.3.2  阻塞 244
7.3.3  排队 246
7.3.4  条件队列 248
7.4  使用AQS 249
7.4.1  控制公平性 250
7.4.2  同步器 251
7.5  AQS性能 252
7.5.1  过载 253
7.5.2  吞吐量 254
7.6  本章习题 255
第8章  结束线程与线程池任务 257
8.1  stop()与destroy() 257
8.2  状态值结束线程 258
8.3  shutdown()与shutdownNow() 258
8.4  线程休眠 258
8.5  线程中断 258
8.6  Future与FutureTask 258
8.6.1  取消任务 259
8.6.2  任务超时结束 263
8.7  项目案例:所有线程池任务暂停与重启 264
8.8  本章习题 267
第9章  Tomcat线程池技术 268
9.1  自定义ThreadPoolExecutor 268
9.2  Tomcat任务队列 270
9.3  Tomcat任务线程 270
9.4  Tomcat任务线程工厂 271
9.5  Tomcat连接器与线程池 272
9.6  创建Tomcat线程池 274
9.7  Web服务器异步环境 275
案例:AsyncContext调用业务方法 276
9.8  Web服务器NIO 278
案例:服务器NIO处理请求 279
9.9  本章习题 281
第10章  并发编程应用 283
10.1  JVM与多线程 283
10.2  Servlet与多线程 284
10.3  懒汉与恶汉模式 286
10.4  数据库Connection与多线程 288
10.4.1  ThreadLocal与线程私有数据 289
10.4.2  ThreadLocal存储数据库Connection 291
10.4.3  ThreadLocal实现Connection per logic模式 293
10.4.4  ThreadLocal实现Connection per request模式 294
10.5  高并发网站的PageView统计 295
10.6  生成的订单号 296
10.7  浏览器并发请求限制 298
10.8  NIO与多路复用 301
10.9  远程异步访问 302
10.10  防止缓存雪崩的DCL机制 305
10.11  分布式锁解决商品超卖 309
参考文献 314



内容摘要

《Java多线程与线程池技术详解》全面、系统地讲解了多线程和线程池技术。   《Java多线程与线程池技术详解》共分为10章,第1~3章为基本的多线程技术基础,包含创建线程、线程状态转换、线程间同步等内容。第4~8章为线程池技术,包含自定义线程池、通过Executors工具类创建线程池、线程池的底层阻塞队列结构、重入锁等内容。第9章和第10章为多线程技术的应用部分,包含基于Tomcat的线程池应用、基于ThreadLocal的数据库连接管理、生成*的订单号等内容。   《Java多线程与线程池技术详解》提供了大量应用实例,每章后面均附有习题。 《Java多线程与线程池技术详解》适合作为高等院校计算机、软件工程专业高年级本科生、研究生的教材,同时可供有一定编程经验的软件开发人员、广大科技工作者和研究人员在进行多线程编程时参考使用。



主编推荐

肖海鹏  人力资源和社会保障部高级职称;51CTO金牌讲师;具有10年大型项目经验和10年Java教学经验;曾任职E龙网架构师、TechFaith系统工程师等。在网络上推出了“Java Web应用开发技术”“SSM SpringBoot实战技术”“多线程与线程池技术详解”等视频教程,广受网友好评。
牟东旭  富景天策(北京)科技集团公司高级项目经理。多年从事互联网一线开发工作,曾在某互联网教育机构担任高级讲师,精通SSM、SpringBoot、SpringCloud等主流Java开源框架以及Hadoop、Kafka、Hive、HBASE Storm、Spark、Kylin等主流大数据技术。目前专注于专业气象服务领域的产品策划、技术架构和产品开发工作。



   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP