Java多线程编程核心技术

出版日期:2015-6-1
ISBN:978711150206X
作者:高洪岩
页数:306页

内容概要

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

书籍目录

前 言
第1章 Java多线程技能,
1.1 进程和多线程的概念及线程的优点
1.2 使用多线程
1.2.1 继承Thread类
1.2.2 实现Runnable接口
1.2.3 实例变量与线程安全
1.2.4 留意i——与System.out.println()的异常
1.3 currentThread()方法
1.4 isAlive()方法
1.5 sleep()方法
1.6 getId()方法
1.7 停止线程
1.7.1 停止不了的线程
1.7.2 判断线程是否是停止状态
1.7.3 能停止的线程——异常法
1.7.4 在沉睡中停止
1.7.5 能停止的线程——暴力停止
1.7.6 方法stop()与java.lang.ThreadDeath异常
1.7.7 释放锁的不良后果
1.7.8 使用return停止线程
1.8 暂停线程
1.8.1 suspend与resume方法的使用
1.8.2 suspend与resume方法的缺点——独占
1.8.3 suspend与resume方法的缺点——不同步
1.9 yield方法
1.10 线程的优先级
1.10.1 线程优先级的继承特性
1.10.2 优先级具有规则性
1.10.3 优先级具有随机性
1.10.4 看谁运行得快
1.11 守护线程
1.12 本章小结
第2章 对象及变量的并发访问
2.1 synchronized同步方法
2.1.1 方法内的变量为线程安全
2.1.2 实例变量非线程安全
2.1.3 多个对象多个锁
2.1.4 synchronized方法与锁对象
2.1.5 脏读
2.1.6 synchronized锁重入
2.1.7 出现异常,锁自动释放
2.1.8 同步不具有继承性
2.2 synchronized同步语句块
2.2.1 synchronized方法的弊端
2.2.2 synchronized同步代码块的使用
2.2.3 用同步代码块解决同步方法的弊端
2.2.4 一半异步,一半同步
2.2.5 synchronized代码块间的同步性
2.2.6 验证同步synchronized(this)代码块是锁定当前对象的
2.2.7 将任意对象作为对象监视器
2.2.8 细化验证3个结论
2.2.9 静态同步synchronized方法与synchronized(class)代码块
2.2.10 数据类型String的常量池特性
2.2.11 同步synchronized方法无限等待与解决
2.2.12 多线程的死锁
2.2.13 内置类与静态内置类
2.2.14 内置类与同步:实验1
2.2.15 内置类与同步:实验2
2.2.16 锁对象的改变
2.3 volatile关键字
2.3.1 关键字volatile与死循环
2.3.2 解决同步死循环
2.3.3 解决异步死循环
2.3.4 volatile非原子的特性
2.3.5 使用原子类进行i++操作
2.3.6 原子类也并不完全安全
2.3.7 synchronized代码块有volatile同步的功能
2.4 本章总结
第3章 线程间通信
3.1 等待/通知机制
3.1.1 不使用等待/通知机制实现线程间通信
3.1.2 什么是等待/通知机制
3.1.3 等待/通知机制的实现
3.1.4 方法wait()锁释放与notify()锁不释放
3.1.5 当interrupt方法遇到wait方法
3.1.6 只通知一个线程
3.1.7 唤醒所有线程
3.1.8 方法wait(long)的使用
3.1.9 通知过早
3.1.10 等待wait的条件发生变化
3.1.11 生产者/消费者模式实现
3.1.12 通过管道进行线程间通信:字节流
3.1.13 通过管道进行线程间通信:字符流
3.1.14 实战:等待/通知之交叉备份
3.2 方法join的使用
3.2.1 学习方法join前的铺垫
3.2.2 用join()方法来解决
3.2.3 方法join与异常
3.2.4 方法join(long)的使用
3.2.5 方法join(long)与sleep(long)的区别
3.2.6 方法join()后面的代码提前运行:出现意外
3.2.7 方法join()后面的代码提前运行:解释意外
3.3 类ThreadLocal的使用
3.3.1 方法get()与null
3.3.2 验证线程变量的隔离性
3.3.3 解决get()返回null问题
3.3.4 再次验证线程变量的隔离性
3.4 类InheritableThreadLocal的使用
3.4.1 值继承
3.4.2 值继承再修改
3.5 本章总结
第4章 Lock的使用
4.1 使用ReentrantLock类
4.1.1 使用ReentrantLock实现同步:测试1
4.1.2 使用ReentrantLock实现同步:测试2
4.1.3 使用Condition实现等待/通知错误用法与解决
4.1.4 正确使用Condition实现等待/通知
4.1.5 使用多个Condition实现通知部分线程:错误用法
4.1.6 使用多个Condition实现通知部分线程:正确用法
4.1.7 实现生产者/消费者模式:一对一交替打印
4.1.8 实现生产者/消费者模式:多对多交替打印
4.1.9 公平锁与非公平锁
4.1.10 方法getHoldCount()、getQueueLength()和getWaitQueueLength()的测试
4.1.11 方法hasQueuedThread()、hasQueuedThreads()和hasWaiters()的测试
4.1.12 方法isFair()、isHeldByCurrentThread()和isLocked()的测试
4.1.13 方法lockInterruptibly()、tryLock()和tryLock(long timeout,TimeUnit unit)的测试
4.1.14 方法awaitUninterruptibly()的使用
4.1.15 方法awaitUntil()的使用
4.1.16 使用Condition实现顺序执行
4.2 使用ReentrantReadWriteLock类
4.2.1 类ReentrantReadWriteLock的使用:读读共享
4.2.2 类ReentrantReadWriteLock的使用:写写互斥
4.2.3 类ReentrantReadWriteLock的使用:读写互斥
4.2.4 类ReentrantReadWriteLock的使用:写读互斥
4.3 本章总结
第5章 定时器Timer
5.1 定时器Timer的使用
5.1.1 方法schedule(TimerTask task, Date time)的测试
5.1.2 方法schedule(TimerTask task, Date firstTime, long period)的测试
5.1.3 方法schedule(TimerTask task, long delay)的测试
5.1.4 方法schedule(TimerTask task, long delay, long period)的测试
5.1.5 方法scheduleAtFixedRate(TimerTask task, Date firstTime, long period)的测试
5.2 本章总结
第6章 单例模式与多线程
6.1 立即加载/"饿汉模式"
6.2 延迟加载/"懒汉模式"
6.3 使用静态内置类实现单例模式
6.4 序列化与反序列化的单例模式实现
6.5 使用static代码块实现单例模式
6.6 使用enum枚举数据类型实现单例模式
6.7 完善使用enum枚举实现单例模式
6.8 本章总结
第7章 拾遗增补
7.1 线程的状态
7.1.1 验证NEW、RUNNABLE和TERMINATED
7.1.2 验证TIMED_WAITING
7.1.3 验证BLOCKED
7.1.4 验证WAITING
7.2 线程组
7.2.1 线程对象关联线程组:1级关联
7.2.2 线程对象关联线程组:多级关联
7.2.3 线程组自动归属特性
7.2.4 获取根线程组
7.2.5 线程组里加线程组
7.2.6 组内的线程批量停止
7.2.7 递归与非递归取得组内对象
7.3 使线程具有有序性
7.4 SimpleDateFormat非线程安全
7.4.1 出现异常
7.4.2 解决异常方法1
7.4.3 解决异常方法2
7.5 线程中出现异常的处理
7.6 线程组内处理异常
7.7 线程异常处理的传递
7.8 本章总结

作者简介

资深Java专家10年经验总结,全程案例式讲解,首本全面介绍Java多线程编程技术的专著
结合大量实例,全面讲解Java多线程编程中的并发访问、线程间通信、锁等最难突破的核心技术与应用实践
Java多线程无处不在,如服务器、数据库、应用。多线程可以有效提升计算和处理效率,大大提升吞吐量和可伸缩性,深得广大程序员和公司的青睐。很多人学习完JavaSE/JavaEE之后想往更深入的技术进行探索,比如对大数据、分布式、高并发类的专题进行攻克时,立即遇到针对java.lang包中线程类的学习,但线程类的学习并不像JDBC一样简单,学习曲线陡峭,多弯路与“坑”。要学习这些热点技术,Java多线程技术避无可避。而本书将引领读者拿下该“技术高地”。
本书有以下特点:
不留遗漏——全面覆盖Java语言多线程知识点;
直击要害——实战化案例精准定位技术细节;
学以至用——精要式演示确保开发/学习不脱节;
潜移默化——研磨式知识讲解参透技术要点;
提升效率——垂直式技术精解不绕弯路;
循序提升——渐进式知识点统排确保连贯。


 Java多线程编程核心技术下载 更多精彩书评



发布书评

 
 


精彩书评 (总计1条)

  •     客观的说,能看的出来作者在Java培训和教育领域有着丰富的经验,但在我看来这本书被称为《多线程编程基础技术》更贴切一些,书中作者列举了很多代码,虽然重复的内容很多,但我认为其中我最不能忍受的在于变量的命名,XX1和XX2看的时间长了难免觉得有些头脑眩晕。这些代码用于给刚开始熟悉Java多线程的学生授课是再合适不过了,但放在这样一本“核心技术”的书中却未免有些夸张了。这本书在面试前突击准备准备还是挺有价值的,但对于实际工程领域来说可能有些过于浅显了,虽然我也坚信基础才是硬道理,但这明显不是我当初选择购买这本书的本意。

精彩短评 (总计33条)

  •     大篇幅的代码演示,内容不如经典的那本Java并发实战翔实及深刻。只涉及了一些基础知识并没有深入探讨
  •     贴代码我就忍了,代码还写的烂的一比,不具有任何价值,甚至不如看上一篇博客有用。扎心了,老铁!!!
  •     一般般,基本上就是解释多线程各种方法,没有深入去说why。代码示例比较多,入门实战的话或许可以看看。
  •     对一些关键字有了了解
  •     可以一看
  •     烂书!很多不清晰的地方,初学者很容易被误导
  •     不推荐。这本书比较入门,而且错误不少啊。 入门可以阅读java7并发编程那本书。
  •     绝大部分是在演示最基本的线程类使用方法,没有明显的作者个人多年实践经验的积累心得,只是堆砌示例。而且有些章节的陈述有错误,比如schedule 和 scheduleAtFixedRate的对比,只是考虑到执行任务延时与否,没有考虑到firstTime因素所具有的补偿性动作,就贸然下结论,实不可取。望读者慎重。
  •     多线程基础知识详解
  •     买了他的两本书过来评价,还有本多线程,这两本书全是贴代码,一模一样养的 代码提供的下载还给你全部贴上去,连import都不拉下,给人一种贴代码凑字数的感觉,重复代码一大片真的把人当傻瓜,对于小白看了还以为什么都懂了,完完全全的api解读毫无用处,看了什么都不会!全书那一页都是代码,和那本Java多线程编程核心技术全是很浅的api解读,还核心技术,薄薄的两本书完全可以写到一块,全是代码凑字数,不要入这个坑了,特来评价,给后人警醒。我真是看不懂还有五分多,真的是小白多!!!!
  •     书缺点: 变量命名,ThreadBB这些真实烂死了。 异常抛出的代码都没删掉 只是拿出api常用的这些,贴贴代码 类的命名也是可以吐槽的 连线程池都都没有。Timer用得着花一章来讲吗?
  •     无尽的重复代码,基本是java核心技术卷一第十四章的示例版。
  •     萌新多线程入门书。
  •     这本书比较基础,例子很多,使得更移动,多线程入门不错。但是有些例子解释得不是很清楚,关于书名见仁见智吧,毕竟为了多卖点,用一个霸气的名字也无可厚非。但是这个价格值得吐槽一下,我觉得紧凑一下买40块还不错,快70的价格觉得有点贵了。如果便宜些我给四颗星。
  •     感觉像是copy,拼凑的,贴那么多代码也是为了骗钱的吧~~~ boolean running =true; while(running==true) 这代码写的也好意思出书~~~
  •     代码太浪费篇幅 不过倒是把每个功能都说清楚了。。
  •     一些基础的内容,举得例子一般,命名随意。代码贴得多,总结得少。
  •     初了通篇的贴代码,真看不到其他多少有价值的内容
  •     介绍了Java多线程相关的关键字,类,定时器等内容,以分析API为主,适合初学者学习。
  •     从来没了解过多线程的可以随便翻翻,代码难读又罗嗦,不知道为什么会有人推荐这本书。
  •     确实很基础 一日读完的书拖了很久 不过还是能起到一定的查漏补缺功能
  •     觉得比较基础
  •     真的是堆代码啊,整本书讲的很少,啰嗦冗长的代码占了本书的80%,代码看的头晕死了 。感觉就是凑数的。以后编程类书籍真的只能买外国专家写的。既然买了这本书只能硬着头皮读下去了唉╯﹏╰
  •     不错吧
  •     代码实验不给结论
  •     例子太多了,篇幅有点长
  •     面试前看看还是挺有效果的
  •     作者用大量示例,通过表现来说明JVM的各种并发特性,适合初学者直观掌握。
  •     一般般,别被书名唬住,入门书
  •     适合初学者学习多线程,了解概念,根据简单的例子理解。很多api,可以粗略地看。
  •     我觉得还行,作为一本多线程入门书籍还可以,这本书代码重复有点蛋疼,但是质量还凑合,关键是代码一定要多实践,看懂和自己理解是两码事
  •     很好的学习Java多线程的书籍,demo很详细,只要运行出来就能理解其原理,赞~!Talk is easy, show me the code.
  •     讲解很详细。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024