最新文章列表

并发的最低安全性

并发最低安全性   例如在某些实时性统计的时候我们只需要这种最低安全性保障就够了,   在多线程并发的情况下.基本类型和引用都能保证最低安全性. 但是在32位jre的情况下long和double是不能保证这种安全性的...可能会读取到严重的错误值,例如读取到了2次不同更新的高32位和低32位的组合值!   补充,其实CopyOnWriteArray也是一种保证最低安全性然后获得性能 ...
zuoge85 评论(0) 有1523人浏览 2013-05-02 13:13

《Java并发编程》之七:避免活跃性危险

如果所有线程以固定顺序来获取锁,那么在程序中就不会出现锁顺序死锁问题。 通过锁顺序来避免死锁: public class InduceLockOrder { private static final Object tieLock = new Object(); public void transferMoney(final Account fromAcct, ...
yidao620c 评论(0) 有1776人浏览 2013-05-01 13:19

《Java并发编程》之六:线程池的使用

8.1  在任务与执行策略之间的隐形耦合 有些类型的任务需要明确指定执行策略,包括: 依赖性任务、使用线程封闭机制的任务、对响应时间敏感的任 ...
yidao620c 评论(0) 有1369人浏览 2013-04-30 12:04

《Java并发编程》之五:取消和关闭线程

Java没有提供任何机制来安全地终止线程,虽然Thread.stop和suspend等方法提供了这样的机制,但是存在严重的缺陷,应该避免使用这些方法。但是Java提供了中断Interruption机制,这是一种协作机制,能够使一个线程终止另一个线程的当前工作。 这种协作方式是必要的,我们很少希望某个任务线程或者服务立即停止,因为这种立即停止会时某个共享的数据结构处于不一致的状态。相反,在编写任 ...
yidao620c 评论(0) 有3998人浏览 2013-04-29 11:13

Java并发学习笔记 [1]

线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread ...
manxisuo 评论(0) 有659人浏览 2013-04-28 23:31

《Java并发编程》之四:Executor框架

ExecutoreService增加了生命周期的管理,有三种状态:运行、关闭、已终止。 public class LifecycleWebServer { private final ExecutorService exec = Executors.newCachedThrea ...
yidao620c 评论(0) 有1093人浏览 2013-04-26 21:42

《Java并发编程》之三:基础构建模块

将线程安全性委托给现有的线程安全类,委托时创建线程安全类一个最有效的策略:只需让现有的线程安全类管理所有的状态即可。   5.1  同步容器 ...
yidao620c 评论(0) 有1270人浏览 2013-04-21 12:01

《Java并发编程》之二:对象的组合

当对象下一个状态需要依赖当前状态时,这个操作必须是一个复合操作。并非所有操作都会在状态转换上施加限制,比如直接更新字段,以赋值形式,典型的就是javabean的get/set方法。 如果在一个不变性条件中包含多个变量,那么在执行任何访问相关变量的操作时候,都必须持有保护这些变量的锁。   下面的PersonSet说明了如何通过实例封闭与加锁机制使一个可变对象或者线程不安全对象成为一个线程安 ...
yidao620c 评论(0) 有1102人浏览 2013-04-20 17:03

《Java并发编程》之一:对象的共享

====不可变对象定义:==== 1,对象创建后其状态不能修改 2,对象所有域都是final的 3,对象时正确创建的,在对象构造期间,this引用没有逸出   ==== ...
yidao620c 评论(0) 有1487人浏览 2013-04-20 11:36

多线程-并发与锁

我们讲到多线程,就离不开并发,讲到并发,就离不开安全性,这里我们先来实现一个简单功能能:买票系统   这是票的类,以及买票的方法: public class DBTicket { // 假设存放100张票 private static int num = 100; public static void setNum(int num) { DBTicket.num = nu ...
greemranqq 评论(0) 有1621人浏览 2013-04-11 10:56

并发编程学习资料

Java并发编程先驱——Doug Lea Doug Lea 是Java并发编程领域的先驱人物,他主导了JSR-166规范的制定,是Java并发库java.util.concurrent的架构师。他于2010年离开Java社区组织,原因是他认为由于Oracle的商业化操作,已经让JCP失去了学术自由。尽管离开了JCP,这并不代表Doug Lea 离开Java的世界,事实上Doug Lea 加入Open ...
Alexander-Mahone 评论(0) 有1062人浏览 2013-04-02 11:21

Mechanical Sympathy 系列翻译 内存访问模型

重要的内存访问模型 在高性能的计算中,我们常说缓存失效(cache-miss)是一个算法中最大性能损失点。 近些年来,我们的处理器处理能力的增长速度已经大大超过了访问主内存的延迟的增长。 通过更宽的,多通道的总线,到主内存的带宽已经大大增加,但延迟并没有相应显著减少。 为了减少延迟,处理器采用愈加复杂的多层的高速缓存子系统。  在1994年的一篇论文“Hitting the memory ...
诸葛不亮 评论(0) 有5848人浏览 2013-03-28 17:28

多线程---可见性

近日在看《JAVA并发编程实践》一书,看到可见性一节,有一疑问,请看代码: package com.eshore.mall.common; public class VisibleTest { private static boolean ready = false; private static int number = 0; public static ...
lianglaiyang 评论(0) 有663人浏览 2013-03-27 17:13

ThreadOrRunnable?

Subclass or Runnable? There are no rules about which of the two methods that is the best. Both methods works. Personally though, I prefer implementing Runnable, and handing an instance of the implemen ...
依然任逍遥 评论(0) 有715人浏览 2013-03-13 11:16

Disruptor全部译文

转载自:http://coolshell.cn/articles/9169.html   Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易。这个系统是建立在JVM平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单。业务逻辑处理器完全是运行在内存中,使用事件源驱动方式。业务 ...
fantasy 评论(0) 有1934人浏览 2013-02-27 09:55

java常用并发工具介绍

 本文主要介绍的工具包括: CountDownLatch Semaphore CyclicBarrier Exchanger CountDownLatch CountDownLatch可以使一个或多个线程等待一组事件发生。在CountDownLatch内部维护一个计数器(被初始化为一个正整数),表示需要等待事件的数量。countDown()方法减少 ...
ol_beta 评论(0) 有1627人浏览 2013-02-06 23:22

征集并发文献译者之Disruptor

为了促进并发编程在中国的推广和研究,让更多的同学能阅读到国外的并发文献。所以打算将国外的并发编程文献翻译成中文,但是我一个人的精力有限,所以希望征集译者帮忙一起翻译。本期主要翻译Disruptor。   以下文章来自Disruptor官方网站:https://code.google.com/p/disruptor/wiki/BlogsAndArticles   正在翻译的 锁的缺点。译 ...
fantasy 评论(4) 有1730人浏览 2013-01-20 21:10

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics