Java多线程编程核心技术
¥
30.73
2.4折
¥
129
九五品
仅1件
作者高洪岩 著
出版社机械工业出版社
ISBN9787111698586
出版时间2021-12
版次1
装帧平装
开本16开
纸张胶版纸
页数572页
定价129元
上书时间2024-12-07
商品详情
- 品相描述:九五品
- 商品描述
-
基本信息
书名:Java多线程编程核心技术
定价:129.00元
作者:高洪岩 著
出版社:机械工业出版社
出版日期:2021-12-01
ISBN:9787111698586
字数:
页码:572
版次:3
装帧:平装
开本:16开
商品重量:
编辑推荐
适读人群 :本书主要适合于以下读者:1.所有使用Java进行编程的开发人员2.服务器和分布式系统开发人员3.分布式系统架构师 1. 书作者撰写,全新升级,新增适用微服务与分布式开发的并发工具与Java线程池 2. 全面剖析多线程编程的核心库、方法、原理,案例式教学,透彻了解高并发本质与应对方法
内容提要
本书作为讲解Java多线程技术的教程,主要介绍非常核心并常用的技术点,比如解决线程Thread的停止,线程对象Thread的暂停,线程的优先级,synchronized关键字的使用,以及使用它解决非线程安全的问题。使用volatile关键字解决变量可见性问题,使用wait及notify方法实现等待通知模式,还有使用ThreadLocal类进行隔离变量,Lock锁对象的使用,包含Condition类实现生产者-消费者模式,深入讲解了Condition类在使用上的细节。还包括对Lock锁对象中的常见API进行细化讲解,ReentrantReadWriteLock读写锁的使用等,Timer定时器类的使用。多线程实现单例模式时完整的解决步骤,以及多线程异常的处理等常见Java多线程解决方案。并发集合框架的使用,以及线程池技术点的使用。
目录
前 言 章 Java多线程技能 1 1.1 进程和线程的定义及多线程的优点 1 1.2 使用多线程 5 1.2.1 继承Thread类 6 1.2.2 使用常见的3个命令分析线程的信息 8 1.2.3 线程随机性的展现 10 1.2.4 执行start的顺序不代表执行run的顺序 12 1.2.5 实现Runnable接口 14 1.2.6 使用Runnable接口实现多线程的优点 15 1.2.7 public Thread(Runnable target)中的target参数 16 1.2.8 实例变量共享导致的“非线程安全”问题与相应的解决方案 18 1.2.9 Servlet技术也会引起“非线程安全”问题 22 1.2.10 留意i--与System.out.println出现的“非线程安全”问题 25 1.2.11 方法run被JVM所调用 27 1.3 方法currentThread 27 1.4 方法isAlive 30 1.5 方法sleep(long millis) 33 1.6 方法sleep(long millis, int nanos) 34 1.7 方法StackTraceElement[] getStack-Trace 35 1.8 方法static void dumpStack 36 1.9 方法Map getAllStackTraces 37 1.10 方法getId 39 1.11 停止线程 40 1.11.1 停止不了的线程 41 1.11.2 判断线程是不是停止状态 42 1.11.3 清除中断状态的使用场景 44 1.11.4 能停止的线程—异常法 48 1.11.5 在sleep状态下停止 51 1.11.6 使用stop暴力停止线程 53 1.11.7 方法stop与java.lang.Thread-Death异常 55 1.11.8 使用stop释放锁导致数据结果不一致 57 1.11.9 使用return;语句停止线程的缺点及相应的解决方案 59 1.12 暂停线程 61 1.12.1 方法suspend与resume的使用 62 1.12.2 方法suspend与resume的缺点—独占 63 1.12.3 方法suspend与resume的缺点—数据不完整 66 1.12.4 使用LockSupport类实现线程暂停与恢复 67 1.13 方法yield 69 1.14 线程的优先级 70 1.14.1 线程优先级的继承特性 71 1.14.2 线程优先级的规律性 72 1.14.3 线程优先级的随机性 75 1.14.4 看谁跑得快 76 1.15 守护线程 78 1.16 并发与并行 79 1.17 同步与异步 80 1.18 多核CPU不一定比单核CPU运行快 81 1.19 本章小结 82 第2章 对象及变量的并发访问 83 2.1 synchronized同步方法 83 2.1.1 方法内的变量是线程安全的 83 2.1.2 实例变量“非线程安全”问题及解决方案 85 2.1.3 同步synchronized在字节码指令中的原理 88 2.1.4 多个对象多个锁 90 2.1.5 synchronized方法将对象作为锁 92 2.1.6 脏读与解决 97 2.1.7 synchronized锁重入 99 2.1.8 继承环境下的锁重入 100 2.1.9 出现异常,锁自动释放 102 2.1.10 非同步方法?:不使用synchronized重写方法 104 2.2 synchronized同步语句块 106 2.2.1 synchronized方法的弊端 106 2.2.2 synchronized同步代码块的使用 109 2.2.3 用同步代码块解决同步方法的弊端 111 2.2.4 一半异步,一半同步 112 2.2.5 synchronized代码块间的同步性 114 2.2.6 方法println也是同步的 116 2.2.7 验证synchronized(this)同步代码块是锁定当前对象的 117 2.2.8 将任意对象作为锁 119 2.2.9 多个锁就是异步执行 121 2.2.10 验证方法被调用是随机的 124 2.2.11 不同步导致的逻辑错误与解决方案 125 2.2.12 细化验证3个结论 129 2.2.13 类对象的单例4 2.2.14 静态同步?:synchronized方法与synchronized(class)代码块 135 2.2.15 同步synchronized方法可以对类的所有对象实例起作用 139 2.2.16 同步synchronized(class)代码块可以对类的所有对象实例起作用 141 2.2.17 String常量池特性与同步问题 143 2.2.18 synchronized方法无限等待问题与解决方案 146 2.2.19 多线程的死锁 148 2.2.20 内置类与静态内置类 150 2.2.21 内置类与同步?:实验1 153 2.2.22 内置类与同步?:实验2 155 2.2.23 锁对象改变导致异步执行 156 2.2.24 锁对象不改变依然是同步执行 159 2.2.25 同步写法案例比较 161 2.2.26 方法holdsLock(Object obj)的使用 161 2.2.27 临界区 162 2.3 volatile关键字 162 2.3.1 可见性的测试 163 2.3.2 原子性与非原子性的测试 171 2.3.3 禁止代码重排序的测试 179 2.4 本章小结 190 第3章 线程间通信 191 3.1 wait/ notify机制 191 3.1.1 不使用wait/notify机制进行通信的缺点 191 3.1.2 什么是wait/notify机制 194 3.1.3 wait/notify机制的原理 194 3.1.4 方法wait的基本用法 195 3.1.5 使用代码完整实现wait /notify机制 196 3.1.6 使用wait/notify机制实现线程
作者介绍
序言
— 没有更多了 —
以下为对购买帮助不大的评价