标签:并发
内置锁也叫同步代码块
,关键字synchronized
,
线程
而不是调用
;volatile变量是一种稍弱的同步机制,用来确保将变量对更新操作通知到其他线程。
重排序
;volatile boolean asleep;
...
while (!asleep)
countSomeSheep();
ThreadLocal提供里get与set等访问接口,为每个使用该变量的线程都存有一份独立的副本,维持线程封闭性
public T get() {
// Optimized for the fast path.
Thread currentThread = Thread.currentThread();
Values values = values(currentThread);
if (values != null) {
Object[] table = values.table;
int index = hash & values.mask;
if (this.reference == table[index]) {
return (T) table[index + 1];
}
} else {
values = initializeValues(currentThread);
}
return (T) values.getAfterMiss(this);
}
/**
* Provides the initial value of this variable for the current thread.
* The default implementation returns {@code null}.
*
* @return the initial value of the variable.
*/
protected T initialValue() {
return null;
}
/**
* Sets the value of this variable for the current thread. If set to
* {@code null}, the value will be set to null and the underlying entry will
* still be present.
*
* @param value the new value of the variable for the caller thread.
*/
public void set(T value) {
Thread currentThread = Thread.currentThread();
Values values = values(currentThread);
if (values == null) {
values = initializeValues(currentThread);
}
values.put(this, value);
}
/**
* Gets Values instance for this thread and variable type.
*/
Values values(Thread current) {
return current.localValues;
}
将数据封装在对象内部,这样对数据的访问就限制在对象的方法上,从个可以更容易的加锁。
Java5.0提供了多种并发容器来改进同步容器的性能。
提供了一种标准当方法将任务的提交过程与执行过程解耦开来。
线程池:
为了解决执行服务的生命周期问题,Executor扩展出了ExecutorService接口,添加了一些生命周期管理的方法。
标签:并发
原文地址:http://blog.csdn.net/xu_fu/article/details/44762371