共 31 篇文章 |
|
如果在某算法中,一个线程的失败或挂起不会导致其他线程也失败挂起,那么这种算法就被称为非阻塞算法。如果在算法的每个步骤中都存在某个线程能够执行下去,那么这种算法也被称为无所算法(Lock-Free)。1 顶0 踩 分享到:发表评论。 阅45 转0 评0 公众公开 15-04-15 17:14 |
java并发(三十一)Amdahl定律阿姆达尔定律。阿姆达尔(Amdahl)定律是计算机系统设计的重要定量原理之一,于1967年由IBM360系列机的主要设计者阿姆达尔首先提出。阿姆达尔定律实际上定义了采取增强(加速)某部分功能处理的措施后可获得的性能改进或执行时间的加速比。这一公式已被学术界所接受,并被称做“阿姆达尔定律”(Amdahl law)。 阅67 转0 评0 公众公开 15-04-15 17:13 |
阅30 转0 评0 公众公开 15-04-15 17:13 |
java并发(二十八)并发随机数,原子变量,并发集合原子变量。java.util.concurrent.atomic包定义了对单一变量进行原子操作的类。Java代码 public class SynchronizedCounter { private int c = 0; public synchronized void increment() { c++; } public synchronized void decrement() { c--; ... 阅52 转0 评0 公众公开 15-04-15 17:13 |
Java代码 package com.chinaso.phl; import java.math.BigInteger; /** * @author piaohailin * @date 2014-4-23 */ public class ExpensiveFunction implements Computable<String, BigInteger> { @Override public BigInteger compute(String arg) throws InterruptedException { return new BigInteger... 阅194 转0 评0 公众公开 15-04-15 17:13 |
@NotThreadSafe:类不是线程安全的,如果类未加任何注解,则不能确定是否线程安全,认为是非线程安全的。@GuardedBy("fieldName"):值与filedName引用的对象相关联的锁,或者是一个隐式锁(filedName没有引用一个Lock),或者是一个显示锁(filedName引用了一个Lock);@GuardedBy("ClassName.fieldName"):类似于@Guarded... 阅1694 转2 评0 公众公开 15-04-15 17:10 |
java并发(二十六)正确使用Volatile变量概述。使用volatile变量可以降低内存一致性错误的风险,因为对volatile变量的任意写操作,对于后续在该变量上的读操作建立了happens-before关系。Java代码 volatile boolean shutdownRequested; ... public void shutdown() { shutdownRequested = true; } public void doWork() { while (!sh... 阅153 转0 评0 公众公开 15-04-15 17:10 |
java并发(二十五)java7之fork如果让我个人理解什么是fork-join,我立刻会想到hadoop的map/reduce。这种并行分解方法常常称作 fork-join,因为执行一个任务将首先分解(fork)为多个子任务,然后再合并(join)(完成后)。除了能够使用fork/join框架来实现能够在多处理系统中被并行执行的定制化算法(如前文中的ForkBlur.java例子),在Java ... 阅78 转0 评0 公众公开 15-04-15 17:09 |
阅189 转0 评0 公众公开 15-04-15 17:08 |
java并发(二十三)阻塞、非阻塞、同步、异步因为中文语意的问题,很多时候确实会导致混用,而且语境不一样意义也可能不一样。我去买一本书,立即买到了,这就是非阻塞;阻塞非阻塞、同步异步可以组合,但是没必要组合,应该说是不同的IO机制,没必要纠结怎么区分,如果定要组合心里才爽,可以 这样认为:阻塞非阻塞都是同步,异步就没什么阻塞... 阅447 转3 评0 公众公开 15-04-15 17:07 |