自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

转载 转载:线程池的三种队列区别:SynchronousQueue、LinkedBlockingQueue 和ArrayBlockingQueue

使用方法: 1.SynchronousQueue private 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 94

原创 volatile关键字

文章目录概述特性JMM java内存模型 概述 volatile是java虚拟机提供的轻量级同步机制 特性 保证可见性 不保证原子性 禁止指令重排 JMM java内存模型 可见性 一个线程写回主内存,另外线程及时知道 就是可见性。 原子性 有序性 各个线程对主内存中共享变量的操作(读取和赋值)必须在工作内存中进行,首先要将变量重主内存拷贝到自己的工作内存空间,然后对变量进行操作,操作完成,再将变量写回主内存。各线程都有变量的副本拷贝,不同线程之间不能访问对方工作内存空间。线程间通信必须通过主内存完

2020-12-12 23:16:43 84

原创 多线程之旅-JUC工具类(CountDownLatch、CyclicBarrier、Semaphore)

文章目录CountDownLatchCyclicBarrierSemaphore总结 CountDownLatch CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,这些线程会阻塞。 其它线程调用countDown方法会将计数器减1(调用countDown方法的线程不会阻塞), 当计数器的值变为0时,因await方法阻塞的线程会被唤醒,继续执行。 一定要全部线程跑完,最后跑主线程。 例子:教室人走光了才会锁门 public class CountDownLatchDemo

2020-11-30 10:19:15 130

原创 多线程之旅-获得多线程的方法

文章目录继承Thread实现RunnableCallable接口与Runnable对比使用FutureTask源码分析(转载) 继承Thread 实现Runnable class MyThread implements Runnable { @Override public void run() { } } Callable接口 自己定义返回值类型 class MyThread implements Callable<Integer> { @Overrid

2020-11-27 10:29:04 52

原创 多线程之旅-集合不安全

文章目录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 76

原创 设计模式之旅-工厂模式(简单工厂、工厂方法、抽象工厂)

文章目录简单工厂工厂方法抽象工厂 简单工厂 是指由一个工厂对象决定创建出哪一种产品类 的实例。 但它不属于 GOF,23 种设计模式 优点:传入一个正确参数,就可以获取对象,无需知道创建细节 缺点:参数值放在一个方法,导致职责过重 比如我们有一个课程的接口,然后想创建多种课程(java、python…)。 public interface ICourse { void record(); } public class JavaCourse implements ICourse{ @Ov

2020-11-24 16:43:20 68

原创 设计模式之旅-单例模式(以及破坏单例解决方法)

文章目录单例模式饿汉式(一)饿汉式(二)懒汉式(一)懒汉式(二)双重校验静态内部类(牛B)枚举(wait)暴力反射破坏单例 单例模式 饿汉式(一) 饿汉式的使用场景:单例对象较少的情况。 优点:没有加任何的锁、执行效率比较高,在用户体验上来说,比懒汉式更好。 缺点:类加载的时候就初始化,不管用与不用都占着空间,浪费了内存。(占着茅坑不拉翔) /** 思路:1.私有化构造方法 2.提供公共访问 3.静态变量实例化对象 */ public class HungrySingleton impl

2020-11-14 19:11:44 94

原创 mysql规范(自用)

文章目录sql编写一些规范 sql编写 一些规范 写完SQL先explain查看执行计划 ,分析是否走索引(索引后面文章会详细讲述); 操作delete或者update语句,加个limit,加limit优点 降低写错SQL代价:如果误操作的话,可以通过binlog日志快速恢复 提供性能:加了limit 1,如果第一条就命中目标return, 没有limit的话,还会继续执行扫描表。 避免长事物:delete执行时,如果age加了索引,MySQL会将所有相关的行加写锁和间隙锁,所有执行相关行会被锁住,如果

2020-11-14 14:07:08 79

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除