线程所机制的说明

http://ifeve.com/java-7-concurrency-cookbook/

1 线程工厂类的使用

2 ThreadGroup来管理一组线程

3  中断的处理

调用 interrupt 来设置线程中断状态

isInterrupted 来查询调用者线程中断状态,是否中断,使用子方法不会清楚已经设置的中断状态

interrupted 静态方法,查询当前线程的中断状态,调用后会清楚已经设置的中断状态

线程中断后抛出异常,则会中断状态会被清楚,如果想保留中断的状态,需要在catch异常时候,使用interrupt再次更改状态

4 线程的wait 和notify (这两个必须使用在锁块中否则报错)

5 统一未捕获异常处理

6 synchronized 使用 

  1)锁一个对象的一个方法(对象的方法,静态方法锁)

  2)不同对象锁,锁不同的代码块(代码块锁)

7 Lock使用 ReadWriteLock lock = new ReentrantReadWriteLock( )公平锁和非公平锁 

  1)锁一个代码块,锁后一定要调用unlock否则会出现死锁。

  2)可以实现,读写 锁分离:多个线程可以同时读,一旦有读锁就不能获得写锁,获得写锁就不能获得读锁

8 线程中一些同步关键字:semaphore,CountDownLatch ,callable,CyclicBarrier,Phaser,Exchange

9 线程池 :固定大小的线程池、缓存线程池、单一线程池,ScheduledThreadPoolExecutor。

  线程可以提交后等待某个执行结果、等待所有的执行结果 、带有定时处理的线程池

  执行callable方法的任务可以使用Future取消 

10  ConcurrentLinkedDeque非阻塞队列 ,阻塞队列LinkedBlockingDeque,DelayedQueue,

11 原子变量 :AtomicLong ,避免指令重排导致的数据不一致行为。

12 Fork/Join框架使用。

13 自定义锁和自定义原子变量实现

猜你喜欢

转载自username2.iteye.com/blog/2356367