漫游鲸二手书店
淘二手好书+回收闲置图书
Java多线程编程核心技术(第2版)
Java多线程编程核心技术(第2版)
作者:高洪岩著 | 机械工业出版社
ISBN:9787111614906
原价: ¥99.00
销售价:¥8.90元
参与书籍回收后,可享更低价格
分类 计算机/网络
作者 作者:高洪岩著
出版社 机械工业出版社
图书简介

全书共7章。第1章讲解了Java多线程的基础,重点介绍线程类的核心API的使用。第2章讲解对并发访问的控制,即如何写出线程安全的程序。第3章介绍线程间通信,以提高CPU利用率和系统间的交互,同时增强对线程任务的把控与监督。第4章讲解Lock对象,以更好实现并发访问时的同步处理。第5章讲解移动开发中使用较多的定时器类中的多线程技术,这是计划/任务执行里很重要的技术点。第6章讲解如何安全、正确地将单例模式与多线程技术相结合,避免实际应用中可能会出现的麻烦。第7章将前面被遗漏的技术案例在本章节中进行补充,尽量做到不出现技术空白点。 高洪岩,某世界500强项目经理,有10年Java相关开发经验,精通Java语言,擅长J2EE、EJB、Android、报表和多线程,以及并发相关的技术内容,理论与实践经验颇丰。著有《Java多线程编程核心技术》《Java并发编程:核心方法与框架》《NIO与Socket编程技术指南》《Java EE核心框架实战 第2版》《Jasper Reports+iReport报表开发详解》《Android学习精要》等书籍。 前言 第1章 Java多线程技能1 1.1 进程和多线程概述1 1.2 使用多线程5 1.2.1 继承Thread类5 1.2.2 使用常见命令分析线程的信息8 1.2.3 线程随机性的展现11 1.2.4 执行start()的顺序不代表执行run()的顺序12 1.2.5 实现Runnable接口13 1.2.6 使用Runnable接口实现多线程的优点14 1.2.7 实现Runnable接口与继承Thread类的内部流程16 1.2.8 实例变量共享造成的非线程安全问题与解决方案17 1.2.9 Servlet技术造成的非线程安全问题与解决方案21 1.2.10 留意i--与System.out.println()出现的非线程安全问题24 1.3 currentThread()方法26 1.4 isAlive()方法29 1.5 sleep(long millis)方法31 1.6 sleep(long millis, int nanos)方法33 1.7 StackTraceElement[] getStackTrace()方法33 1.8 static void dumpStack()方法35 1.9 static Map getAllStackTraces()方法36 1.10 getId()方法38 1.11 停止线程38 1.11.1 停止不了的线程39 1.11.2 判断线程是否为停止状态41 1.11.3 能停止的线程—异常法43 1.11.4 在sleep状态下停止线程47 1.11.5 用stop()方法暴力停止线程49 1.11.6 stop()方法与java.lang.ThreadDeath异常51 1.11.7 使用stop()释放锁给数据造成不一致的结果52 1.11.8 使用“return;”语句停止线程的缺点与解决方案54 1.12 暂停线程57 1.12.1 suspend()方法与resume()方法的使用57 1.12.2 suspend()方法与resume()方法的缺点—独占58 1.12.3 suspend()方法与resume()方法的缺点—数据不完整62 1.13 yield()方法63 1.14 线程的优先级64 1.14.1 线程优先级的继承特性65 1.14.2 优先级的规律性66 1.14.3 优先级的随机性68 1.14.4 优先级对线程运行速度的影响70 1.15 守护线程71 1.16 本章小结73 第2章 对象及变量的并发访问74 2.1 synchronized同步方法74 2.1.1 方法内的变量为线程安全74 2.1.2 实例变量非线程安全问题与解决方案77 2.1.3 同步synchronized在字节码指令中的原理80 2.1.4 多个对象多个锁81 2.1.5 将synchronized方法与对象作为锁84 2.1.6 脏读89 2.1.7 synchronized锁重入91 2.1.8 锁重入支持继承的环境93 2.1.9 出现异常,锁自动释放94 2.1.10 重写方法不使用synchronized96 2.1.11 public static boolean holdsLock(Object obj)方法的使用99 2.2 synchronized同步语句块99 2.2.1 synchronized方法的弊端99 2.2.2 synchronized同步代码块的使用102 2.2.3 用同步代码块解决同步方法的弊端104 2.2.4 一半异步,一半同步105 2.2.5 synchronized代码块间的同步性108 2.2.6 println()方法也是同步的110 2.2.7 验证同步synchronized(this)代码块是锁定当前对象的110 2.2.8 将任意对象作为锁113 2.2.9 多个锁就是异步执行116 2.2.10 验证方法被调用是随机的118 2.2.11 不同步导致的逻辑错误及其解决方法121 2.2.12 细化验证3个结论124 2.2.13 类Class的单例性129 2.2.14 静态同步synchronized方法与synchronized(class)代码块130 2.2.15 同步syn static方法可以对类的所有对象实例起作用135 2.2.16 同步syn(class)代码块可以对类的所有对象实例起作用137 2.2.17 String常量池特性与同步相关的问题与解决方案138 2.2.18 同步synchronized方法无限等待问题与解决方案141 2.2.19 多线程的死锁143 2.2.20 内置类与静态内置类146 2.2.21 内置类与同步:实验1149 2.2.22 内置类与同步:实验2151 2.2.23 锁对象改变导致异步执行153 2.2.24 锁对象不改变依然同步执行156 2.2.25 同步写法案例比较158 2.3 volatile关键字159 2.3.1 可见性的测试159 2.3.2 原子性的测试168 2.3.3 禁止代码重排序的测试176 2.4 本章小结187 第3章 线程间通信188 3.1 wait/notify机制188 3.1.1 不使用wait/notify机制实现线程间通信188 3.1.2 wait/notify机制191 3.1.3 wait/notify机制的原理192 3.1.4 wait()方法的基本使用192 3.1.5 完整实现wait/notify机制194 3.1.6 使用wait/notify机制实现list.size()等于5时的线程销毁195 3.1.7 对业务代码进行封装198 3.1.8 线程状态的切换201 3.1.9 wait()方法:立即释放锁202 3.1.10 sleep()方法:不释放锁203 3.1.

阅读更多

相关推荐
更多低价好书购买/书籍回收
扫码访问微信小程序
在线客服
了解更低购买价格、或有疑问需要帮助,可以找小鲸鱼噢~
咨询在线客服