Java多线程编程核心技术

2018-11-05   阅读:79

  前 言 第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多线程编程核心技术

新媒体

新手程序员如何学习C语言编程
MFC:MFC手艺虽然听说前期一段时间冷下来了(近期又有新的热度,貌似融入了新的血液),可是进修者能熟练控制它,才能短期

Java多线程编程核心技术
前 言 第1章 Java多线程技术, 1.1 历程和多线程的概念及线程的长处 1.2 利用多线程 1.2.1 承继Thread类 1.2.2 实现Runnable接口 1.2

后端技术 by Tim Yang
正在该勾当傍边,良多法式员相聚正在一路。 以上是维基百科对于Hackathon正在勾当形式上的注释。勾当从端午假期前的周五