- 博客(8)
- 收藏
- 关注
转载 转载:线程池的三种队列区别:SynchronousQueue、LinkedBlockingQueue 和ArrayBlockingQueue
使用方法:1.SynchronousQueueprivate static ExecutorService cachedThreadPool = new ThreadPoolExecutor(4, Runtime.getRuntime().availableProcessors() * 2, 0, TimeUnit.MILLISECONDS, new SynchronousQueue<>(), r -> new Thread(r, "ThreadTest"));Synchronou
2021-12-21 15:52:48
179
原创 volatile关键字
文章目录概述特性JMM java内存模型概述volatile是java虚拟机提供的轻量级同步机制特性保证可见性不保证原子性禁止指令重排JMM java内存模型可见性一个线程写回主内存,另外线程及时知道 就是可见性。原子性有序性各个线程对主内存中共享变量的操作(读取和赋值)必须在工作内存中进行,首先要将变量重主内存拷贝到自己的工作内存空间,然后对变量进行操作,操作完成,再将变量写回主内存。各线程都有变量的副本拷贝,不同线程之间不能访问对方工作内存空间。线程间通信必须通过主内存完
2020-12-12 23:16:43
137
原创 多线程之旅-JUC工具类(CountDownLatch、CyclicBarrier、Semaphore)
文章目录CountDownLatchCyclicBarrierSemaphore总结CountDownLatchCountDownLatch主要有两个方法,当一个或多个线程调用await方法时,这些线程会阻塞。其它线程调用countDown方法会将计数器减1(调用countDown方法的线程不会阻塞),当计数器的值变为0时,因await方法阻塞的线程会被唤醒,继续执行。一定要全部线程跑完,最后跑主线程。例子:教室人走光了才会锁门public class CountDownLatchDemo
2020-11-30 10:19:15
184
原创 多线程之旅-获得多线程的方法
文章目录继承Thread实现RunnableCallable接口与Runnable对比使用FutureTask源码分析(转载)继承Thread实现Runnableclass MyThread implements Runnable { @Override public void run() { }}Callable接口自己定义返回值类型class MyThread implements Callable<Integer> { @Overrid
2020-11-27 10:29:04
104
原创 多线程之旅-集合不安全
文章目录ArrayList不安全原因解决办法VectorCollections写时复制HashSet不安全HashMap不安全ArrayList不安全原因假如我们定义一个ArrayList集合,然后开启多线程修改这个集合 public static void listNotSafe() { ArrayList<String> list = new ArrayList<>(); for (int i = 0; i < 30; i++) {
2020-11-26 11:17:26
128
原创 设计模式之旅-工厂模式(简单工厂、工厂方法、抽象工厂)
文章目录简单工厂工厂方法抽象工厂简单工厂是指由一个工厂对象决定创建出哪一种产品类 的实例。但它不属于 GOF,23 种设计模式优点:传入一个正确参数,就可以获取对象,无需知道创建细节缺点:参数值放在一个方法,导致职责过重比如我们有一个课程的接口,然后想创建多种课程(java、python…)。public interface ICourse { void record();}public class JavaCourse implements ICourse{ @Ov
2020-11-24 16:43:20
108
原创 设计模式之旅-单例模式(以及破坏单例解决方法)
文章目录单例模式饿汉式(一)饿汉式(二)懒汉式(一)懒汉式(二)双重校验静态内部类(牛B)枚举(wait)暴力反射破坏单例单例模式饿汉式(一)饿汉式的使用场景:单例对象较少的情况。优点:没有加任何的锁、执行效率比较高,在用户体验上来说,比懒汉式更好。缺点:类加载的时候就初始化,不管用与不用都占着空间,浪费了内存。(占着茅坑不拉翔)/**思路:1.私有化构造方法 2.提供公共访问 3.静态变量实例化对象*/public class HungrySingleton impl
2020-11-14 19:11:44
145
原创 mysql规范(自用)
文章目录sql编写一些规范sql编写一些规范写完SQL先explain查看执行计划 ,分析是否走索引(索引后面文章会详细讲述);操作delete或者update语句,加个limit,加limit优点降低写错SQL代价:如果误操作的话,可以通过binlog日志快速恢复提供性能:加了limit 1,如果第一条就命中目标return, 没有limit的话,还会继续执行扫描表。避免长事物:delete执行时,如果age加了索引,MySQL会将所有相关的行加写锁和间隙锁,所有执行相关行会被锁住,如果
2020-11-14 14:07:08
129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅