怀揣梦想,努力前行

Never forget to improve yourself.

java.lang.Thread.sleep()方法和java.lang.Object.wait()方法之间的区别

调用sleep()方法后进入休眠状态的线程并不会释放其持有的对象锁;当线程调用对象的wait()方法后,线程将进入等待状态并释放其持有的该对象上的锁(线程仍然持有其它对象的锁)

2014-09-09 15:54:29

阅读数 15467

评论数 0

Java结果缓存实现(Thread Safe)

使用FutureTask实现:

2014-07-10 15:19:13

阅读数 3654

评论数 0

同步工具类三:计数信号量(java.util.concurrent.Semaphore)

计数信号量用来控制同时访问某个特定资源的操作数或同时执行某个指定操作的数量 A counting semaphore.Conceptually, a semaphore maintains a set of permits. Each acquire blocks if necessary un...

2014-07-08 13:15:32

阅读数 4372

评论数 0

同步工具类二:可取消异步计算(java.util.concurrent.FutureTask)

FutureTask可处于等待执行、正在执行和执行完成这3

2014-07-07 10:18:37

阅读数 5344

评论数 0

同步工具类一:闭锁(java.util.concurrent.CountDownLatch)

一,让所有线程同时启动

2014-07-02 09:17:38

阅读数 5642

评论数 1

多线程6:线程封闭与ThreadLocal

当访问共享可变数据时,通常需要使用同步,同步是需要消耗性能的。 一种避免使用同步的方式就是不共享数据。如果数据都被封闭在各自的线程之中,就不需要同步。这种通过将数据封闭在线程中而避免使用同步的技术称为线程封闭。 1,Ad-hoc线程封闭 维护线程封闭性的职责完全由程序实现来承担,是非常脆弱的,因...

2013-04-22 14:43:22

阅读数 1106

评论数 0

Java volatile关键字

Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized 的一部分。本文介绍了几种有效使用 volati...

2013-04-16 11:34:39

阅读数 919

评论数 0

多线程5:对象的发布与逸出(线程安全性)

一,发布:使对象能够在当前作用域之外的代码中使用 二,逸出:当某个不该被发布的对象被发布时,这种情况称为逸出   发布内部状态将会破坏封装性,并使得程序难以维持不变性条件 无论其他的线程会对已发布的引用执行何种操作,都不重要,因为误用该引用的风险始终是客观存在的。 变相说明了使用封装的必要性:使对...

2013-04-15 17:27:33

阅读数 3030

评论数 0

多线程4:内置锁的重入性

当某个线程请求一个由其它线程持有的锁时,发出请求的线程会进入阻塞状态 由于内置锁是可重入的,因此如果某个线程试图获取一个已经由它自己持有的锁,这个请求可以成功

2013-04-12 16:06:37

阅读数 904

评论数 0

深入浅出 Java Concurrency

http://www.blogjava.net/xylz/archive/2010/07/08/325587.html 个人感觉讲的非常不错,收藏一下   jmm的理解对于java多线程中的很多问题的理解有非常大的帮助,推荐讲解jmm的一个系列文章 http://www.infoq.com...

2012-12-07 14:54:32

阅读数 2018

评论数 0

多线程3:Java内置锁与synchronized关键字

Java提供了一种内置的锁机制来支持原子性 每一个Java对象都可以用作一个实现同步的锁,称为内置锁,线程进入同步代码块之前自动获取到锁,代码块执行完成正常退出或代码块中抛出异常退出时会释放掉锁 内置锁为互斥锁,即线程A获取到锁后,线程B阻塞直到线程A释放锁,线程B才能获取到同一个锁 内置锁使用s...

2012-11-30 13:30:16

阅读数 7801

评论数 3

多线程2:Java原子变量(java.util.concurrent.atomic.*)

一个没有并发控制的计数器: public class Counter implements Runnable { private static int count; public void run() { System.out.println(Thread.currentThrea...

2012-11-20 16:07:32

阅读数 4533

评论数 1

多线程1:竞态条件

竞态条件(Race Condition):计算的正确性取决于多个线程的交替执行时序时,就会发生竞态条件。 最常见的竞态条件为: 一,先检测后执行。执行依赖于检测的结果,而检测结果依赖于多个线程的执行时序,而多个线程的执行时序通常情况下是不固定不可判断的,从而导致执行结果出现各种问题。 对...

2012-11-20 10:19:37

阅读数 11119

评论数 4

提示
确定要删除当前文章?
取消 删除
关闭
关闭