1. java.util.concurrent - Java 并发工具包Java 5 添加了一个新的包到 Java 平台,java.util.concurrent 包。这个包包含有一系列能够让 Java 的并发编程变得更加简单轻松的类。在这个包被添加以前,你需要自己去动手实现自己的相关工具类。本文我将带你一一认识 java.util.concurrent 包里的这些类,然后你可以尝试着如何在项目中...
分类:
编程语言 时间:
2015-03-03 09:54:35
阅读次数:
254
1.非阻塞算法非阻塞算法属于并发算法,它们可以安全地派生它们的线程,不通过锁定派生,而是通过低级的原子性的硬件原生形式 —— 例如比较和交换。非阻塞算法的设计与实现极为困难,但是它们能够提供更好的吞吐率,对生存问题(例如死锁和优先级反转)也能提供更好的防御。使用底层的原子化机器指令取代锁,比如比较并...
分类:
编程语言 时间:
2015-03-01 14:23:15
阅读次数:
162
fcgi进程可以写成单线程的,也可以写成多线程的。
单线程就是main函数中有一个死循环,一直等待接受请求,有请求过来时,就处理请求,并返回结果,没有并发性。
多线程也分两种模式:一种是main函数起多个线程,每个线程都独立接受请求。另一种是main函数起一个accpet线程接受请求,多个do_session线程处理请求,这种模式需要一个任务队列的支持。
模式不同,采用的系统架构就不同。下面...
分类:
其他好文 时间:
2015-02-13 13:27:49
阅读次数:
176
Vector与ArrayList
Vector属于线程安全级别的,但是大多数情况下不使用Vector,因为线程安全需要更大的系统开销。
HashTable与HashMap
Hashtable 中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。在多线程并发的环境下,可以直接使用Hashtable,但是要使用HashMap的话就要自己增加同步处理了。
StringBuilder与StringBuffer
StringBuilder和StringBuffer的方法是一模一样,就前者是多线程而后...
分类:
编程语言 时间:
2015-02-10 18:45:59
阅读次数:
220
在Java5.0之前,只有synchronized(内置锁)和volatile. Java5.0后引入了显示锁ReentrantLock.ReentrantLock概况ReentrantLock是可重入的锁,它不同于内置锁, 它在每次使用都需要显示的加锁和解锁, 而且提供了更高级的特性:公平锁, 定...
分类:
编程语言 时间:
2015-02-08 12:48:17
阅读次数:
171
编写线程安全需要关心的:共享的变量可变的变量共享意味着多个线程可以同时访问,可变意味着其值在生命周期可以改变。例如以下count 变量://线程不安全的类public class UnsafeCount { private int count = 0; //该变量是共享的 public void i...
分类:
编程语言 时间:
2015-02-05 23:03:17
阅读次数:
368
编写线程安全需要关心的:共享的变量可变的变量共享意味着多个线程可以同时访问,可变意味着其值在生命周期可以改变。例如以下count变量://线程不安全的类publicclassUnsafeCount{privateintcount=0;//该变量是共享的publicvoidincrease(){//这...
分类:
编程语言 时间:
2015-02-05 17:53:51
阅读次数:
175
并发三大定律
Amdahl 定律
–Gene Amdahl 发现在计算机体系架构设计过程中,某个部件的优化对整个架构的优化和改善是有上限的。这个发现后来成为知名的Amdahl 定律。
比如:即使你有10个老婆,也不能一个月把孩子生下来。
Gustafson 定律
–Gustafson假设随着处理器个数的增加,并行与串行的计算总量也是可以增加的。Gustafson定律认为加...
分类:
编程语言 时间:
2015-01-29 19:37:54
阅读次数:
209
The Task Parallel Library (TPL) is a set of public types and APIs in theSystem.ThreadingandSystem.Threading.Tasksnamespaces. The purpose of the TPL is...
分类:
编程语言 时间:
2015-01-29 17:13:25
阅读次数:
144
java中volatile关键字的含义在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 sy....
分类:
编程语言 时间:
2015-01-27 10:42:15
阅读次数:
159