高级别并发对象(High Level Concurrency Objects)

  1. 高级别并发对象:Lock Objects,Executors,Concurrent collections,Atomic variables,ThreadLocalRandom
  2. LockObjects:Lock lock = new reentrantLock();lock.tryLock()返回true或false,代表是否获取了对象的锁;lock.unlock();解除对象锁。
  3. Executors:Executor Interfaces(Executor、ExecutorService、ScheduledExecutorService),Thread Pools,Fork/join。Executor接口有一个execute(),看起来将一个实现了Runable接口的类放到方法中,等到某个worker thread有时间就执行这个任务。ExecutorService在Executor接口基础上拓展了submit()方法可以提交实现callable接口的类,返回一个Future类,可以利用该类得到该线程执行任务的返回结果。ScheduledExecutorService可以每隔一段时间执行该任务或者等一段时间执行该任务。
  4. Thread Pools线程池,会首先创建多个线程,利用executor管理这些线程,并将任务直接交给executor。线程池的优势:设想每来一个http请求就开一个新的线程去执行,那么请求一多就会很快达到系统的极限,请求再来的时候就直接拒绝相应了,若先建一个线程池,来的请求都会先放到一个队列中,那么这些请求始终会得到响应,即使不是立刻得到响应,也会尽快得到响应。而且不使用线程池时,线程的创建销毁需要资源,但使用线程池就不会有这个问题。Executors. newFixedThreadPool()、newCachedThreadPool()、newSingleThreadExecutor()这几个方法都能创建一个线程池。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章