![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 64
木易三水良
这个作者很懒,什么都没留下…
展开
-
线程池概述
1、基本概念 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable原创 2021-06-21 00:41:58 · 87 阅读 · 0 评论 -
线程的等待与唤醒
1、Object的wait()与notify() public class Test { private static Object lock = new Object(); public static void main(String[] args) { new Thread(() -> { System.out.println(Thread.currentThread().getName() + "开始执行"); sy原创 2021-06-17 10:34:16 · 357 阅读 · 0 评论 -
先行发生八大原则(个人理解)
总结来源于《深入理解JVM虚拟机》 程序次序规则(Program Order Rule) : 在一个线程内, 按照控制流顺序, 书写在前面的操作先行发生于书写在后面的操作; 管程锁定规则(Monitor Lock Rule) : 一个unlock操作先行发生于后面对同一个锁的lock操作。 这里必须强调的是==“同一个锁”, 而“后面”是指时间上的先后==; volatile变量规则(Volatile Variable Rule) : 对一个volatile变量的写操作先行发生于后面对这个变量的读操作,原创 2020-12-04 14:34:47 · 461 阅读 · 1 评论 -
控制线程的执行顺序
public class Test { static Thread thread1 = new Thread(() -> System.out.println(Thread.currentThread().getName() + " 执行完毕!"), "thread1"); static Thread thread2 = new Thread(() -> System.out.println(Thread.currentThread().getName() + " 执行完毕!")原创 2021-06-02 18:01:34 · 109 阅读 · 0 评论