并发编程
文章平均质量分 63
咖啡好香
道阻且长,行则将至
展开
-
如何实现死锁(2)锁顺序死锁
概念:当一个线程永远的持有一个锁,并且其他线程都尝试获得这个锁时,那么它们将永远被阻塞锁顺序死锁(抱死)/** * 锁顺序死锁 */public class LeftRightDeadLock { private static Object left = new Object(); private static Object right = new Object(); public static void leftRight() { synchronize原创 2021-03-16 18:04:21 · 342 阅读 · 2 评论 -
如何实现死锁(1)线程饥饿死锁
线程饥饿死锁1,父线程等待子线程返回值public class DeadLockDemo { private static ExecutorService exec = Executors.newSingleThreadExecutor(); public static class DeadLockTask implements Callable<String> { @Override public String call() throw原创 2021-03-12 09:45:36 · 216 阅读 · 4 评论 -
高效缓存的实现及其应用于接口幂等性的尝试
1,前言该缓存为Java并发编程实战中实现的,主要是为了将性能瓶颈并转变为可伸缩瓶颈,用于提升单线程的性能;该缓存主要是为了解决高开销高耗时接口的性能提升。而基于此接口,能够尝试实现接口的幂等性。2,实现@FunctionalInterfaceinterface Computable<A,V> { V compute(A arg) throws InterruptedException;}/** * 高耗时接口DEMO */class ExpensiveFu原创 2021-03-05 08:55:53 · 296 阅读 · 2 评论 -
关于线程中断的理解
1,概述首先,线程的中断是一种协作机制,什么是协作机制呢?每个线程都有一个boolean类型的中断状态,其他线程通过修改该线程的中断状态来控制该线程的中断;2,Thread中断方法interrupt():设置中断isInterrupted():是否中断(返回是否已经设置中断状态)interrupted():清除调用方当前线程的中断状态(静态方法)public static boolean interrupted() { return currentThread().isInterrupted(原创 2021-03-08 22:31:24 · 201 阅读 · 0 评论