当前位置:首页 » 编程语言 » concurrentjava

concurrentjava

发布时间: 2023-08-07 06:54:25

java并发框架有哪些

Java并发框架java.util.concurrent是JDK5中引入到标准库中的(采用的是Doug
Lea的并发库)。该包下的类可以分为这么块:

Executors

1)接口:

Executor(例子涉及):用来执行提交的Runnable任务的对象。是一个简单的标准化接口,用来定义包括线程池、异步IO、轻量级任务框架等等。任务可以由一个新创建的线程、一个已有任务执行线程、或是线程直接调用execute()来执行,可以串行也可并行执行,取决于使用的是哪个Executor具体类。

ExecutorService(例子涉及):Executor的子接口,提供了一个更加具体的异步任务执行框架:提供了管理结束的方法,以及能够产生Future以跟踪异步任务进程的方法。一个ExcutorService管理着任务队列和任务调度。

ScheledExecutorService(例子涉及):ExecutorService的子接口,增加了对延迟和定期任务执行的支持。

Callable(例子涉及):一个返回结果或抛出异常的任务,实现类需要实现其中一个没有参数的叫做call的方法。Callabe类似于Runnable,但是Runnable不返回结果且不能抛出checked
exception。ExecutorService提供了安排Callable异步执行的方法。

Future(例子涉及):代表一个异步计算的结果(由于是并发执行,结果可以在一段时间后才计算完成,其名字可能也就是代表这个意思吧),提供了可判断执行是否完成以及取消执行的方法。

2)实现:

ThreadPoolExecutor和ScheledThreadPoolExecutor:可配置线程池(后者具备延迟或定期调度功能)。

Executors(例子涉及):提供Executor、ExecutorService、ScheledExecutorService、ThreadFactory以及Callable的工厂方法及工具方法。

FutureTask:对Future的实现

ExecutorCompletionService(例子涉及):帮助协调若干(成组)异步任务的处理。

Queues

非阻塞队列:ConcurrentLinkedQueue类提供了一个高效可伸缩线程安全非阻塞FIFO队列。

阻塞队列:BlockingQueue接口,有五个实现类:LinkedBlockingQueue(例子涉及)、ArrayBlockingQueue、SynchronousQueue、PriorityBlockingQueue和DelayQueue。他们对应了不同的应用环境:生产者/消费者、消息发送、并发任务、以及相关并发设计。

Timing

TimeUnit类(例子涉及):提供了多种时间粒度(包括纳秒)用以表述和控制基于超时的操作。

Synchronizers 提供特定用途同步语境

Semaphore(例子涉及):计数信号量,这是一种经典的并发工具。

CountDownLatch(例子涉及):简单的倒计数同步工具,可以让一个或多个线程等待直到另外一些线程中的一组操作处理完成。

CyclicBarrier(例子涉及):可重置的多路同步工具,可重复使用(CountDownLatch是不能重复使用的)。

Exchanger:允许两个线程在汇合点交换对象,在一些pipeline设计中非常有用。

Concurrent Collections

除队列外,该包还提供了一些为多线程上下文设计的集合实现:ConcurrentHashMap、CopyOnWriteArrayList及CopyOnWriteArraySet。

注意:"Concurrent"前缀的类有别于"synchronized"前缀的类。“concurrent”集合是线程安全的,不需要由单排斥锁控制的(无锁的)。以ConcurrentHashMap为例,允许任何数量的并发读及可调数量的并发写。“Synchronized”类则一般通过一个单锁来防止对集合的所有访问,开销大且伸缩性差。

热点内容
登陆ftp服务器用户 发布:2025-03-23 11:09:22 浏览:426
lol雷瑟守备服务器ip 发布:2025-03-23 11:09:22 浏览:946
我的世界一点也不好玩的服务器 发布:2025-03-23 11:04:32 浏览:400
sql时间戳转时间 发布:2025-03-23 11:03:02 浏览:222
水密码怎么样好不好啊 发布:2025-03-23 11:02:51 浏览:834
安卓换了一个壁纸如何换回原来的 发布:2025-03-23 10:58:00 浏览:262
大学生编程培训 发布:2025-03-23 10:57:07 浏览:725
甲盾文件加密 发布:2025-03-23 10:55:40 浏览:15
网易服务器是谁搭建的 发布:2025-03-23 10:34:25 浏览:256
mssqlsql文件 发布:2025-03-23 10:23:19 浏览:924