`

Thread 学习小结

阅读更多
1.ThreadFactory  创建线程的工厂类 方法 Thread newThread(Runnable r),  Executors.defaultThreadFactory() 方法提供了更有用的简单实现,即在返回线程前将已创建线程的上下文设置为已知的值。

2.callable类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的. 方法 v call()。和Runnable的run()区别:
call有返回值,run没有
call能抛异常,run不能

3.Future定义了一系列操作线程的方法以及获取线程的状态 cancel(),isCancelled(),get(),isDone() 实现子类为FutureTask(),get()方法可以带参数用来设定超时时间。

4.executors
此包中所定义的 Executor、ExecutorService、ScheduledExecutorService、ThreadFactory 和 Callable 类的工厂和实用方法。此类支持以下各种方法:
创建并返回设置有常用配置字符串的 ExecutorService 的方法。
创建并返回设置有常用配置字符串的 ScheduledExecutorService 的方法。
创建并返回“包装的”ExecutorService 方法,它通过使特定于实现的方法不可访问来禁用重新配置。
创建并返回 ThreadFactory 的方法,它可将新创建的线程设置为已知的状态。
创建并返回非闭包形式的 Callable 的方法,这样可将其用于需要 Callable 的执行方法中。

5.Executor 执行已提交的 Runnable 任务的对象,方法void execute(Runnable command)

6.ExecutorService继承Executor接口,子接口ScheduledExecutorService ,已知的实现类AbstractExecutorService, ScheduledThreadPoolExecutor, ThreadPoolExecutor
可以通过Executor的newCachedThreadPool,newFixedThreadPool(int nThreads) ,newScheduledThreadPool(int corePoolSize) ,newSingleThreadExecutor() 创建它的实例。

接口ConcurrentMap 提供其他原子 putIfAbsent、remove、replace 方法的 Map。
ConcurrentHashMap 提供线程安全的map实现。
CopyOnWriteArrayList,ArrayList 的一个线程安全的变体。

接口Queue 队列,子接口BlockingQueue,已知实现类
AbstractQueue,
ArrayBlockingQueue,
ConcurrentLinkedQueue, --------一个FIFO队列。
DelayQueue,
LinkedBlockingQueue,
LinkedList,
PriorityBlockingQueue,------------和PriorityQueue一样,但是是线程安全的。
PriorityQueue,--------一个基于优先级堆的极大优先级队列。此队列按照在构造时所指定的顺序对元素排序,既可以根据元素的自然顺序 来指定排序(参阅                         Comparable),也可以根据 Comparator 来指定,这取决于使用哪种构造方法,非线程安全的。
SynchronousQueue

element()   检索,但是不移除此队列的头,如果队列为空抛异常
E peek()    检索,但是不移除此队列的头,如果此队列为空,则返回 null。
E poll()      检索并移除此队列的头,如果此队列为空,则返回 null。
E remove() 检索并移除此队列的头。,如果队列为空则抛异常。

ConcurrentSkipListMap   sortedMap
ConcurrentSkipListSet    SortedSet
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics