JAVA 多线程
文章平均质量分 56
AttackingRookie
这个作者很懒,什么都没留下…
展开
-
Callable 优化tomcat吞吐量
@GetMapping("/async/detail/{id}") public Callable<Object> getTaskDetailAsync(@PathVariable Integer id) { long c = System.currentTimeMillis(); Callable<Object> call = new Callable<Object>() { @Override...原创 2022-01-04 16:02:33 · 210 阅读 · 0 评论 -
Master - Worker 设计模式
我先简单得介绍一下master-worker设计模式。5个任务每个任务的执行时间是5秒在单线程的情况下需要跑55=25秒,在多线程的情况下 比如说开5个线程则是(5(5+开闭线程的时间))/5 约等于5秒。master-worker就是为了解决这一场景的,当然5个线程必须是逻辑无序的,这点应该容易理解。Master主人在整个模式中它的作用只有接收和分配任务。worker 工人则是具体得执行任务。最后将任务返回给master。相当于将大的任务分成若干小份,并发执行 从而提高效率。现在我们来设计一下这个转载 2021-12-15 11:33:57 · 398 阅读 · 0 评论 -
volatile 和 CAS
java 多线程高并发题目请描述synchrnoized和reentrantlock的底层实现及重入的底层原理?请描述锁的四种状态和升级过程?CAS的ABA问题如何解决?请谈一下AOS,为什么AOS的底层是CAS+volatile?请谈一下你对volatile的理解volatile的可见性和禁止指令重排序是如何实现的CAS是什么请描述一下对象的创建过程对象在内存中的内存布局DCL单例为什么要加volatile解释一下锁的四种状态Object o = new Object()在内存原创 2021-01-03 16:44:14 · 90 阅读 · 0 评论