Java多线程编程核心技术:Java Multi-thread Programming

Java多线程编程核心技术:Java Multi-thread Programming
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2015-06
版次: 1
ISBN: 9787111502067
定价: 69.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 306页
正文语种: 简体中文
258人买过
  •   资深Java专家10年经验总结,全程案例式讲解,首本全面介绍Java多线程编程技术的专著。本书以浅白的措辞,结合大量实例,全面讲解Java多线程编程中的并发访问、线程间通信、锁等难突破的技术与应用实践。
      全书共7章。第1章讲解了Java多线程的基础,重点介绍线程类的核心API的使用。第2章讲解对并发访问的控制,即如何写出线程安全的程序。第3章介绍线程间通信,以提高CPU利用率和系统间的交互,同时增强对线程任务的把控与监督。第4章讲解Lock对象,以更好实现并发访问时的同步处理。第5章讲解移动开发中使用较多的定时器类中的多线程技术,这是计划任务执行里很重要的技术点。第6章讲解如何安全、正确地将单例模式与多线程技术相结合,避免实际应用中可能会出现的麻烦。第7章将前面被遗漏的技术案例在本章节中进行补充,尽量做到不出现技术空白点。   高洪岩,某世界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.3currentThread()方法
    1.4isAlive()方法
    1.5sleep()方法
    1.6getId()方法
    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.1suspend与resume方法的使用
    1.8.2suspend与resume方法的缺点——独占
    1.8.3suspend与resume方法的缺点——不同步
    1.9yield方法
    1.10线程的优先级
    1.10.1线程优先级的继承特性
    1.10.2优先级具有规则性
    1.10.3优先级具有随机性
    1.10.4看谁运行得快
    1.11守护线程
    1.12本章小结

    第2章对象及变量的并发访问
    2.1synchronized同步方法
    2.1.1方法内的变量为线程安全
    2.1.2实例变量非线程安全
    2.1.3多个对象多个锁
    2.1.4synchronized方法与锁对象
    2.1.5脏读
    2.1.6synchronized锁重入
    2.1.7出现异常,锁自动释放
    2.1.8同步不具有继承性
    2.2synchronized同步语句块
    2.2.1synchronized方法的弊端
    2.2.2synchronized同步代码块的使用
    2.2.3用同步代码块解决同步方法的弊端
    2.2.4一半异步,一半同步
    2.2.5synchronized代码块间的同步性
    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.3volatile关键字
    2.3.1关键字volatile与死循环
    2.3.2解决同步死循环
    2.3.3解决异步死循环
    2.3.4volatile非原子的特性
    2.3.5使用原子类进行i++操作
    2.3.6原子类也并不完全安全
    2.3.7synchronized代码块有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(longtimeout,TimeUnitunit)的测试
    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(TimerTasktask,Datetime)的测试
    5.1.2方法schedule(TimerTasktask,DatefirstTime,longperiod)的测试
    5.1.3方法schedule(TimerTasktask,longdelay)的测试
    5.1.4方法schedule(TimerTasktask,longdelay,longperiod)的测试
    5.1.5方法scheduleAtFixedRate(TimerTasktask,DatefirstTime,longperiod)的测试
    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.4SimpleDateFormat非线程安全
    7.4.1出现异常
    7.4.2解决异常方法1
    7.4.3解决异常方法2
    7.5线程中出现异常的处理
    7.6线程组内处理异常
    7.7线程异常处理的传递
    7.8本章总结
  • 内容简介:
      资深Java专家10年经验总结,全程案例式讲解,首本全面介绍Java多线程编程技术的专著。本书以浅白的措辞,结合大量实例,全面讲解Java多线程编程中的并发访问、线程间通信、锁等难突破的技术与应用实践。
      全书共7章。第1章讲解了Java多线程的基础,重点介绍线程类的核心API的使用。第2章讲解对并发访问的控制,即如何写出线程安全的程序。第3章介绍线程间通信,以提高CPU利用率和系统间的交互,同时增强对线程任务的把控与监督。第4章讲解Lock对象,以更好实现并发访问时的同步处理。第5章讲解移动开发中使用较多的定时器类中的多线程技术,这是计划任务执行里很重要的技术点。第6章讲解如何安全、正确地将单例模式与多线程技术相结合,避免实际应用中可能会出现的麻烦。第7章将前面被遗漏的技术案例在本章节中进行补充,尽量做到不出现技术空白点。
  • 作者简介:
      高洪岩,某世界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.3currentThread()方法
    1.4isAlive()方法
    1.5sleep()方法
    1.6getId()方法
    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.1suspend与resume方法的使用
    1.8.2suspend与resume方法的缺点——独占
    1.8.3suspend与resume方法的缺点——不同步
    1.9yield方法
    1.10线程的优先级
    1.10.1线程优先级的继承特性
    1.10.2优先级具有规则性
    1.10.3优先级具有随机性
    1.10.4看谁运行得快
    1.11守护线程
    1.12本章小结

    第2章对象及变量的并发访问
    2.1synchronized同步方法
    2.1.1方法内的变量为线程安全
    2.1.2实例变量非线程安全
    2.1.3多个对象多个锁
    2.1.4synchronized方法与锁对象
    2.1.5脏读
    2.1.6synchronized锁重入
    2.1.7出现异常,锁自动释放
    2.1.8同步不具有继承性
    2.2synchronized同步语句块
    2.2.1synchronized方法的弊端
    2.2.2synchronized同步代码块的使用
    2.2.3用同步代码块解决同步方法的弊端
    2.2.4一半异步,一半同步
    2.2.5synchronized代码块间的同步性
    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.3volatile关键字
    2.3.1关键字volatile与死循环
    2.3.2解决同步死循环
    2.3.3解决异步死循环
    2.3.4volatile非原子的特性
    2.3.5使用原子类进行i++操作
    2.3.6原子类也并不完全安全
    2.3.7synchronized代码块有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(longtimeout,TimeUnitunit)的测试
    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(TimerTasktask,Datetime)的测试
    5.1.2方法schedule(TimerTasktask,DatefirstTime,longperiod)的测试
    5.1.3方法schedule(TimerTasktask,longdelay)的测试
    5.1.4方法schedule(TimerTasktask,longdelay,longperiod)的测试
    5.1.5方法scheduleAtFixedRate(TimerTasktask,DatefirstTime,longperiod)的测试
    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.4SimpleDateFormat非线程安全
    7.4.1出现异常
    7.4.2解决异常方法1
    7.4.3解决异常方法2
    7.5线程中出现异常的处理
    7.6线程组内处理异常
    7.7线程异常处理的传递
    7.8本章总结
查看详情
系列丛书 / 更多
Java多线程编程核心技术:Java Multi-thread Programming
Java核心技术 卷I:基础知识(原书第10版)
[美]凯 S.霍斯特曼(Cay S.Horstmann) 著
Java多线程编程核心技术:Java Multi-thread Programming
Java核心技术(卷2):高级特性(原书第9版)
[美]Cay S.、[美]Gary Cornell 著;陈昊鹏、王浩、姚建平 译
Java多线程编程核心技术:Java Multi-thread Programming
Java核心技术卷II:高级特性(原书第10版)
陈昊鹏 译
Java多线程编程核心技术:Java Multi-thread Programming
Java并发编程的艺术
方腾飞、魏鹏、程晓明 著
Java多线程编程核心技术:Java Multi-thread Programming
Java核心技术·卷1:基础知识(原书第9版)
Cay S.、Gary Cornell 著;周立新、陈波、叶乃文 译
Java多线程编程核心技术:Java Multi-thread Programming
Java多线程编程核心技术(第2版)
高洪岩 著
Java多线程编程核心技术:Java Multi-thread Programming
Java核心技术系列:Java虚拟机规范(Java SE 8版)
[美]蒂姆·林霍尔姆(Tim,Lindholm)、弗兰克·耶林(Frank Yellin)、吉拉德·布拉查(Glad Bracha)、亚历史斯·巴克利(Alex Buckley) 著;爱飞翔、周志明 译
Java多线程编程核心技术:Java Multi-thread Programming
NIO与Socket编程技术指南
高洪岩 著
Java多线程编程核心技术:Java Multi-thread Programming
Java RESTful Web Service实战
韩陆 著
Java多线程编程核心技术:Java Multi-thread Programming
Java设计模式及实践
[印度]卡马尔米特·辛格(Kamalmeet Singh) 著;张小坤、黄凯、贺涛 译
Java多线程编程核心技术:Java Multi-thread Programming
Java RESTful Web Service实战(第2版)
韩陆 著
Java多线程编程核心技术:Java Multi-thread Programming
JVM G1源码分析和调优
彭成寒
相关图书 / 更多