您的位置:首页 > 编程语言 > Java开发

Java 并发

2016-03-13 22:30 246 查看

常用方法

Thread.yield() 

提示让别的线程使用CPU

.join()

在目标线程结束后,再继续当前线程

.interrupt()

只会设置该线程的中断状态位,即设置为true,通过 

Thread.currentThread().isInterrupted(),

thread.interrupted()(该方法调用后会将中断标示位清除,即重新设置为false),

catch(InterruptExcetion )会将中断标示位清除 

进一步处理,或中断线程

Thread.sleep(int n)

TimeUnit.MILLISECONDS.sleep(n)

线程进入阻塞,n毫秒后就绪,不会释放 锁

synchronized

同步方法

 同步块

Lock.lock()
实现同步

线程间的协作
wait() , notify() ,notifyAll()
Condition.await() .signal() .signalAll()

ThreadLocal

volatile关键字

中断线程方法
interrupt
exec.shutDownNow() -> interrupt
exec.submit(r) ->Future<>.cancel() ->interrupt

Executor 框架

Executor框架同java.util.concurrent.Executor 接口在Java 5中被引入。Executor框架是一个根据一组执行策略调用,调度,执行和控制的异步任务的框架。

无限制的创建线程会引起应用程序内存溢出。所以创建一个线程池是个更好的的解决方案,因为可以限制线程的数量并且可以回收再利用这些线程。利用Executors框架可以非常方便的创建一个线程池

线程池实现
任务队列

 添加线程

 线程获取任务

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java