04-多线程----自定义线程池实现

自定义线程池的实现自定义阻塞队列/** * 阻塞队列 存放任务 * @param <T> */@Slf4j(topic = "c.BlockingQueue")class BlockingQueue<T> { //任务队列 private Deque<T> queue = new ArrayDeque<>();

- 阅读全文 -

03-多线程----无锁解决并发的方案

1、问题多线程模拟银行取钱操作,代码如下:public interface Demo4 { //获取当前的余额 Integer getBalance(); // 取款 void withdraw(Integer amount); //操作某一个账户 static void demo(Demo4 account) { long start = Sys

- 阅读全文 -

02-多线程----volatile

Java的内存模型JMM 即 Java Memory Model,它定义了主存、工作内存抽象概念,底层对应着 CPU 寄存器、缓存、硬件内存、 CPU 指令优化等。 JMM 体现在以下几个方面原子性-保证指令不会收到线程上下文切换的影响可见性-保证指令不会收到cpu缓存影响有序性-保证指令不会收到cpu指令并行优化影响可见性static boolean run = true;public stat

- 阅读全文 -

01-多线程----wai()、notify()、notifyAll()和保护性暂停模式

1、wait()、notify()、notifyAll()方法简介方法名描述notify()在 object 上正在 waitSet 等待的线程中挑一个唤醒notifyAll()让 object 上正在 waitSet 等待的线程全部唤醒,随机一个线程获得锁wait()让进入 object 监视器的线程到 waitSet 等待wait(long n)有时限的等待, 到 n 毫秒后结束等待,或是被

- 阅读全文 -