JAVA线程
包罗万码
这个作者很懒,什么都没留下…
展开
-
Java 理论与实践: 正确使用 Volatile 变量
volatile 变量使用指南 Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的 Java 理论与实践 中,Brian Goetz 将介绍几种正确使用 volatile 变量的模式,并针对翻译 2017-02-21 09:12:31 · 208 阅读 · 0 评论 -
Java 理论与实践: 非阻塞算法简介
看吧,没有锁定! Java™ 5.0 第一次让使用 Java 语言开发非阻塞算法成为可能,java.util.concurrent 包充分地利用了这个功能。非阻塞算法属于并发算法,它们可以安全地派生它们的线程,不通过锁定派生,而是通过低级的原子性的硬件原生形式 —— 例如比较和交换。非阻塞算法的设计与实现极为困难,但是它们能够提供更好的吞吐率,对生存问题(例如死锁和优先级反转转载 2017-02-21 09:11:03 · 564 阅读 · 0 评论 -
Java 理论与实践: 构建一个更好的 HashMap
ConcurrentHashMap 如何在不损失线程安全的同时提供更高的并发性 ConcurrentHashMap 是 Doug Lea 的 util.concurrent 包的一部分,它提供比 Hashtable 或者 synchronizedMap 更高程度的并发性。而且,对于大多数成功的 get() 操作它会设法避免完全锁定,其结果就是使得并发应用程序有着非常好翻译 2017-02-21 09:09:43 · 465 阅读 · 0 评论 -
Java 理论与实践: 流行的原子
多线程的原子性,什么是原子? 在 JDK 5.0 之前,如果不使用本机代码,就不能用 Java 语言编写无等待、无锁定的算法。在 java.util.concurrent 中添加原子变量类之后,这种情况发生了变化。请跟随并行专家 Brian Goetz 一起,了解这些新类如何使用 Java 语言开发转载 2017-02-21 09:05:05 · 421 阅读 · 0 评论 -
Java 理论与实践: 线程池与工作队列
线程池有助于实现最佳资源利用率 贴在我们多线程 Java 编程论坛上最常见的问题之一是“怎样创建线程池?”。几乎在每个服务器应用程序中都会出现线程池和工作队列问题。 为什么要用线程池? 诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网转载 2017-02-21 09:06:38 · 210 阅读 · 0 评论 -
Java 理论与实践: 描绘线程安全性
线程安全不是一个非真即假的命题 7月份我们的并发专家 Brian Goetz 将 Hashtable 和 Vector 类描述为“有条件线程安全的”。一个类难道不是线程安全就是线程不安全的吗?不幸的是,线程安全并不是一个非真即假的命题,它的定义出人意料的困难。但是,正如Brian 在本月的 Java 理论与实践中解释的,尽量在 Javadoc 中对类的线程安全性进行归类是非常转载 2017-02-21 08:59:26 · 167 阅读 · 0 评论