摘要:
假设服务器有一个computer复杂运算,耗时较久,如果服务器要实现缓存,一种思路就是通过HashMap或者redis来做缓存 下面是使用HashMap的简单示例,源码取自《并发编程实战》 1 package net.jcip.examples; 2 3 import java.math.BigIn 阅读全文
posted @ 2021-01-31 15:32
苏黎世湖畔
阅读(125)
评论(0)
推荐(0)
摘要:
1 import java.util.concurrent.Exchanger; 2 import java.util.concurrent.ExecutorService; 3 import java.util.concurrent.Executors; 4 5 /** 6 * @author s 阅读全文
posted @ 2021-01-31 14:53
苏黎世湖畔
阅读(64)
评论(0)
推荐(0)
摘要:
先抛个问题,如果一个线程池的核心线程是5,目前3个核心线程被创建,其中1个在运行,2个空闲,缓存队列为空。此时新进来一个任务,线程池会做什么操作? 空闲的核心线程会直接执行这个任务吗? 会先丢到队列里再说吗? 答案都是否定的。 我们看下下面的线程处理流程图 别人说的都不算,还得看源码,摘出了java 阅读全文
posted @ 2021-01-31 14:31
苏黎世湖畔
阅读(501)
评论(0)
推荐(0)
摘要:
CyclicBarrier默认的构造方法是CyclicBarrier(int parties),parties表示栅栏需要拦截的线程数量。 每个线程调用await方法,计数器减1,减少为0前所有线程都必须等待。 CyclicBarrier还提供一个更高级的构造函数CyclicBarrier(int 阅读全文
posted @ 2021-01-31 14:03
苏黎世湖畔
阅读(95)
评论(0)
推荐(0)
摘要:
Semaphore 美[ˈseməfɔːr] 信号量Semaphore 可以用于做流量控制,特别是公用资源有限的应用场景,比如数据库连接。Semaphore的构造方法 Semaphore(int permits)接受一个整型的数字,表示可用的许可证数量。Semaphore(10)表示允许10个线程获 阅读全文
posted @ 2021-01-31 13:49
苏黎世湖畔
阅读(230)
评论(0)
推荐(0)
摘要:
1 import java.util.concurrent.CountDownLatch; 2 3 /** 4 * @author sulishi 5 * @version 1.0 6 * @date 2021/1/31 7 */ 8 public class CountDownLatchTest 阅读全文
posted @ 2021-01-31 13:17
苏黎世湖畔
阅读(99)
评论(0)
推荐(0)

浙公网安备 33010602011771号