
Java并发编程实战
我是松哥
软件技术人员
展开
-
Java并发编程实战 - 第2章 线程安全性
进程与线程 操作系统可以使计算机同时能运行多个程序,每个不同的程序在单独的进程中运行。 同一个进程可以有多个线程的程序控制流。线程可以共享进程范围内的资源,但每个线程有各自的计数器,栈和局部变量。多线程可以提升资源的利用率及系统吞吐量。尤其是多处理器的环境,可以提高处理器资源的利用率。多线程带来并发问题: - 安全性问题 (共享对象的状态正确性和一致性) - 活跃性问题 (死锁,饥饿,活原创 2017-04-22 17:56:56 · 285 阅读 · 0 评论 -
Java并发编程实战 - 第16章 Java内存模型
Happens-Before原创 2017-04-27 19:22:59 · 287 阅读 · 0 评论 -
Java并发编程实战 - 第15章 原子变量与非阻塞同步机制
原子变量与非阻塞同步机制原创 2017-04-27 19:21:27 · 484 阅读 · 0 评论 -
Java并发编程实战 - 第14章 自定义同步工具
创建状态依赖的类的最简单方法是在类库中现有状态依赖类的基础上进行构造。原创 2017-04-27 19:20:00 · 284 阅读 · 0 评论 -
Java并发编程实战 - 第13章 显式锁
Lock与ReentrantLock原创 2017-04-27 19:17:25 · 324 阅读 · 0 评论 -
Java并发编程实战 - 第12章 并发程序的测试
正确性测试基本单元测试对阻塞操作的测试安全性测试 资源管理的测试 使用回调 产生更多的交谈操作 性能测试增加计时功能多种算法比较响应性衡量避免性能测试的陷阱 其他测试方法原创 2017-04-27 19:15:32 · 332 阅读 · 0 评论 -
Java并发编程实战 - 第11章 性能与可伸缩性
线程最主要的目的是提高程序的运行性能。原创 2017-04-27 08:19:53 · 327 阅读 · 0 评论 -
Java并发编程实战 - 第10章 避免活跃性危险
安全性问题是多线程开发的首要问题,为了保证线程安全,往往使用加锁机制。但过度使用锁或不正确使用锁,可能导致死锁等活跃性问题。线程活跃性问题有:死锁饥饿 槽糕的响应性活锁 死锁的原因和解决方案 最常见的活跃性问题是死锁。 死锁最常见的原因是不正确的锁顺序。锁顺序死锁 原因:循环加锁依赖,不同的顺序来获取同一个锁。解决方法:按照相同的顺序来请求锁。 动态锁顺序死锁 原因:锁原创 2017-04-27 07:50:59 · 408 阅读 · 0 评论 -
Java并发编程实战 - 第8章 线程池的使用
如何配置和调优线程池?原创 2017-04-26 08:38:54 · 438 阅读 · 0 评论 -
Java并发编程实战 - 第7章 取消与关闭
Java没有提供某种抢占式的机制来取消操作或结束线程。可以通过协作式的中断机制来实现取消操作。 可以使用FutureTask和Executor框架,构建可以取消的任务和服务。原创 2017-04-23 23:38:39 · 330 阅读 · 0 评论 -
Java并发编程实战 - 第6章 任务执行
Executor框架提供一种标准的方法将任务的提交过程和任务的执行过解耦。 Executor基于生成者和消费者模式,提交任务相当于生产者,执行任务相当于消费者。Executor - 执行Runnable任务ExecutorService - 执行Runnable, Callable, FutureTask; - 所有submit方法返回一个Future跟踪任务的进展。 - invokeA原创 2017-04-23 21:19:30 · 344 阅读 · 0 评论 -
Java并发编程实战 - 第5章 基础构建模块
Java类库提供了丰富的并发基础构建模块 同步容器类(Vector, Hashtable, Collections.synchronizedXxx) 并发容器 同步器 阻塞队列原创 2017-04-23 09:18:38 · 349 阅读 · 0 评论 -
Java并发编程实战 - 第4章 对象的组合
同对象的组合设计线程安全的类原创 2017-04-22 21:41:53 · 296 阅读 · 0 评论 -
Java并发编程实战 - 第3章 对象的共享
如何共享和发布对象? 同步代码块和同步方法可以确保以原子的方式执行操作;同步还可以确保内存可见性(Memory Visibility)。可见性 确保读操作的线程能看到其他线程写入的值,必须使用同步。 (在没有同步的条件下,编译器,处理器,运行时都可能对操作的执行顺序进行重新排序) 失效数据 非原子的64位操作 加锁与可见性 volatile变量 仅当满足下面所有条件时,才应该使用vo原创 2017-04-22 21:12:40 · 348 阅读 · 0 评论 -
Java多线程 - 生产者和消费者模式
Java多线程之生产者(Producer)和消费者(Consumer)模式:示例1:public class Resource { private int i = 0; private int limit; public Resource(int limit) { this.limit = limit; } public synchronized原创 2017-05-13 11:44:44 · 249 阅读 · 0 评论