🛸~~ 🚁🚁🚁🛩️🛩️🛩️~|

n1ce2cv

园龄:5年2个月粉丝:4关注:1

随笔分类 -  Java / juc

ThreadPool线程池
摘要:线程池 3大方法,7大参数,4大拒绝策略 降低资源消耗 提高响应速度 方便管理 线程复用,控制最大并发数,管理线程 最大线程定义 CPU密集型:几核cpu就设置为几,通过代码去获取Runtime().getRuntime().availableProcessors() IO密集型:判断程序中十分耗费
54
0
0
BlockingQueue阻塞队列
摘要:BlockingQueue 实现类 Collection->Queue->BlockingQueue 使用场景:多线程并发处理,线程池 Queue源码 public interface Queue<E> extends Collection<E> { boolean add(E e); boolea
53
0
0
ReadWriteLock读写锁
摘要:ReadWriteLock读写锁 ReadWriteLock只允许一个线程修改,但是get()方法只读,不修改数据,实际上允许多个线程同时调用,使用ReadWriteLock可以解决这个问题 适合读多写少的场景 源码 public interface ReadWriteLock { Lock rea
130
0
0
Semaphore信号量
摘要:Semaphore 公共资源有限时用户控制流量 构造函数,默认非公平锁 public Semaphore(int permits) { sync = new NonfairSync(permits); } public Semaphore(int permits, boolean fair) { s
31
0
0
Callable、Future和FutureTask
摘要:Callable Runnable没有返回值:public abstract void run();,Callable可以有返回值:V call() throws Exception; 可以抛出异常 方法不同,run()/call() 源码 public interface Callable<V>
42
0
0
CountDownLatch和CyclicBarrier
摘要:CountDownLatch减法计数器 CountDownLatch 允许一个或多个线程等待一些特定的操作完成,而这些操作是在其它的线程中进行的 CountDownLatch 构造函数中有一个 count 参数,表示有多少个线程需要被等待。其他线程调用countDown()方法,每调用一次 coun
76
0
0
集合类不安全
摘要:集合类不安全 ConcurrentModificationException并发修改异常 解决办法 写入时复制 使用工具类Collections List不安全 import java.util.*; import java.util.concurrent.CopyOnWriteArrayList;
30
0
0
锁的分类
摘要:JUC cpu多核 public class Test1 { public static void main(String[] args) { // 获取cpu核数 // cpu密集型 io密集型 System.out.println(Runtime.getRuntime().availablePr
207
0
0
synchronized锁的内容
摘要:synchronized锁的内容 import java.util.concurrent.TimeUnit; class Test1 { public static void main(String[] args) { Phone phone = new Phone(); new Thread(()
36
0
0
ReentrantLock
摘要:Lock锁 源码 Lock public interface Lock { void lock(); void lockInterruptibly() throws InterruptedException; boolean tryLock(); boolean tryLock(long time,
59
0
0
虚假唤醒
摘要:虚假唤醒 class A { public static void main(String[] args) { Data data = new Data(); // +1 new Thread(() -> { for (int i = 0; i < 10; i++) { try { data.inc
452
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起