上海网站建设润滋汝南企业网站如何建设?
摘要:上海网站建设润滋,汝南企业网站建设,网站更换空间对优化的影响,kali搭建wordpress目录 1、Future 1.1、Callable和Runnable的不同 1.2、Future的主要功能 1.3、常用方法 1.4、Future使用
上海网站建设润滋,汝南企业网站建设,网站更换空间对优化的影响,kali搭建wordpress目录
1、Future
1.1、Callable和Runnable的不同
1.2、Future的主要功能
1.3、常用方法
1.4、Future使用注意事项
1.5、CompletableFuture(旅游平台问题)
1.5.1、需求
1.5.2、解决方案1#xff1a;串行
1.5.3、解决方案2#xff1a;线程池
1.5.4、解决方案3#xf…目录
1、Future
1.1、Callable和Runnable的不同
1.2、Future的主要功能
1.3、常用方法
1.4、Future使用注意事项
1.5、CompletableFuture(旅游平台问题)
1.5.1、需求
1.5.2、解决方案1串行
1.5.3、解决方案2线程池
1.5.4、解决方案3CountDownLatch
1.5.4、解决方案4CompletableFuture推荐
2、线程协作
2.1、信号量
2.2、CountDownLatch闭锁
2.2.1、场景一一个线程等待多个线程
2.2.2、场景二多个线程等待一个线程
2.3、CyclicBarrier栅栏
2.3.1、原理
2.3.2、构造函数
2.3.3、CyclicBarrier和CountDownLatch的区别
3、Java内存模型
3.1、Java内存模型JMM
3.2、指令重排序
3.3、Java原子操作的注意事项
3.3.1、Java中的原子操作
3.3.2、long和double的原子性
3.4、内存可见性
3.5、主内存和工作内存的关系
3.6、happens-before原则
3.6.1、定义
3.6.2、规则
3.7、volatile作用
3.8、单例模式的双重检查锁模式
3.8.1、实现代码
3.8.2、实体对象为什么要加volatile
4、CAS原理
4.1、CAS是什么
4.2、优点
4.3、CAS应用场景
4.4、CAS导致的问题
5、死锁问题
5.1、定义
5.2、条件
5.3、命令行定位死锁(jstack)
5.4、如何解决死锁
5.4.1、线上死锁
5.4.2、避免死锁
5.4.3、检测与恢复策略(先允许系统发生死锁然后再解除)
5.4.4、鸵鸟策略
6、final关键字和不变性
6.1、用法
6.2、为什么String被设计成不可变的
7、AQS框架
7.1、原理
7.2、线程协同工具类(AQS实现) 1、Future
1.1、Callable和Runnable的不同
Callable有返回对象(Future)可以抛出受检异常需实现call方法。Runnable无返回值不能抛出受检异常需实现run方法。
1.2、Future的主要功能 通过 Future 可以了解任务执行情况或者取消任务的执行还可获取任务执行的结果。
1.3、常用方法
get()获取任务的执行结果。任务已经结束get()方法直接返回执行结果 任务未开始或运行中get()方法会阻塞当前线程 任务抛出异常get()方法会抛出ExecutionException异常 任务被取消get()方法会抛出CancellationException异常 任务超时get()方法会抛出TimeoutException异常。
isDone()判断当前任务是否执行完毕。成功执行和异常情况都会返回true。
cancle()取消任务执行。任务还未开始 调用cancle()任务取消返回true。 任务已经完成或已经被取消 调用cancle()取消失败返回false。 任务正在执行 调用cancle(boolean mayInterruptIfRunning) mayInterruptIfRunning true执行任务的线程就会收到一个中断的信号正在执行的任务可能会有一些处理中断的逻辑进而停止。 mayInterruptIfRunning false代表不中断正在运行的任务也就是说本次 cancel 不会有任何效果同时 cancel 方法会返回 false。
isCancelled判断能否被取消。
