- 浏览: 29140 次
- 性别:
- 来自: 北京
最新评论
文章列表
http://wadainying.com/moviez
界面使用了twitter的bootstrap。
测试一下啦
MyInitBean.java
import org.springframework.beans.factory.InitializingBean;
public class MyInitBean implements InitializingBean {
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("调用InitializingBean的afterPropertiesSet()...");
}
}
TestInitB ...
Executors中的重要方法(续):
8. ScheduledExecutorService newSingleThreadScheduledExecutor(ThreadFactory threadFactory)
创建一个计划任务线程池,池中的worker线程数中有一个。处理的任务放在一个延迟任务队列(DelayedWorkQueue)中,产生新线程的工厂为threadFactory。同时执行的任务将按照FIFO顺序来执行。
9. ScheduledExecutorService newScheduledThreadPool(int corePoolSize)
创建一个计划任务线程池 ...
Executors中的重要方法(续):
5. ExecutorService newCachedThreadPool()
创建一个线程池,根据需要来产生新的线程,同时可以重用现成的可用线程。处理的任务存放在一个队列同步队列(SynchronousQueue)中。如果线程池中的线程闲置60秒,则此线程将被终止,移出线程池。
6. ExecutorService newCachedThreadPool(ThreadFactory threadFactory)
创建一个线程池,根据需要来产生新的线程,同时可以重用现成的可用线程。处理的任务存放在一个队列同步队列(SynchronousQueue)中 ...
java.util.concurrent.Executors:
工厂类,提供了一些工具方法。支持以下各种方法:
1. 创建并返回设置有常用配置字符串的 ExecutorService 的方法。
2. 创建并返回设置有常用配置字符串的 ScheduledExecutorService 的方法。
3. 创建并返回“包装的”ExecutorService 方法,它通过使特定于实现的方法不可访问来禁用重新配置。
4. 创建并返回 ThreadFactory 的方法,它可将新创建的线程设置为已知的状态。
5. 创建并返回非闭包形式的 Callable 的方法,这样可将其用于需要 Callabl ...
ExecutorService中重要的方法(续):
6. <T> Future<T> submit(Callable<T> task)
提交一个有返回值的任务,并返回一个Future。使用Future的get方法来取得任务执行的结果。
7. <T> Future<T> submit(Runnable task, T result)
提交一个Runnable任务,并返回一个Future。使用Future的get方法来取得任务执行的结果。
8. Future<?> submit(Runnable task)
提交一个Ru ...
java.util.concurrent.ExecutorService:
ExecutorService扩展了Executor并添加了一些生命周期管理的方法,同时提供一个Future用来监控异步任务的执行过程。一个Executor的生命周期有三种状态,运行 ,关闭 ,终止 。Executor创建时处于运行状态。当调用ExecutorService.shutdown()后,处于关闭状态,isShutdown()方法返回true。这时,不应该再向Executor中添加任务,所有已添加的任务执行完毕后,Executor处于终止状态时isTerminated()返回true。如果Executor处于 ...
LinkedBlockingDeque中的重要方法(续):
16. E takeFirst()==E take()
17. E takeLast()
在锁定状态下删除处在队列头/尾的节点。调用unlinkFirst/unlinkLast方法。如果队列为空则当前线程进入等待区
18. void addFirst(E e)== void push(E e)
19. void addLast(E e) ≈ boolean add(E e)
在锁定状态下插入一个节点到队列头/尾。调用offerFirst/offerLast,如果队列已满,则抛出IllegalStateException异常
20. E ...
LinkedBlockingDeque中的重要方法:
1. boolean linkFirst(E e)
2. boolean linkLast(E e)
插入一个节点到队列头/尾。如果队列已满,则返回false,否则生成一个节点并插入队列,然后唤醒一个等待notEmpty条件的线程,返回true
3. E unlinkFirst()
4. E unlinkLast()
删除处在队列头/尾的节点。如果队列为空,则返回null,否则执行删除,然后唤醒一个等待notFull条件的线程,返回被删除的元素
5. void unlink(Node<E> x)
删除指定节点,唤醒所有等待not ...
java.util.concurrent.LinkedBlockingDeque:
拥有单个锁的双向阻塞队列。它使用了conditions来控制阻塞。操作时不满足条件时,操作终止或等待条件满足。
LinkedBlockingDeque中的重要字段:
1. private transient Node<E> first
队列中第一个节点
2. private transient Node<E> last
队列中最后一个节点
3. private transient int count
队列中节点的个数
4. private final int capacity
队列的最 ...
ConcurrentHashMap中内部类Segment<K,V>的重要方法
重要方法:
a) static final <K,V> Segment<K,V>[] newArray(int i)
创建指定大小的Segment数组。
b) HashEntry<K,V> getFirst(int hash)
得到当前段指定槽位的第一个Entry。
c) V readValueUnderLock(H ...
ConcurrentHashMap中的内部类:
1. static final class HashEntry<K,V>
每个段中链表元素的节点。其中的next字段是final的,不能修改,所以不能在这个节点的下面添加新节点,只能在它的前面添加。
2. static final class Segment<K,V> extends ReentrantLock implements Serializable
重要字段:
a) transient volatile int count
当前段Segment中元素的个数。
b) transient int modCoun ...
ConcurrentHashMap中重要的方法:
1. V get(Object key)
先从segments数组中取出对应的段Segment<K,V>,然后再取到对应key的value值。
2. V put(K key, V value)
先从segments数组中取出对应的段Segment<K,V>,然后对key赋值。当value为null时抛出NullPointerException异常
3. V remove(Object key)
先从segments数组中取出对应的段Segment<K,V>,然后再执行删除操作。
4. boolean c ...