随笔分类 - 并发编程
摘要:#引言 经典多线程编程面试题 使用两个线程交替输出A1B2C3......Z26 #实现方案1 public static void method2() throws InterruptedException { Object object = new Object(); AtomicInteger
阅读全文
摘要:#引言 生产者与消费者模型,是多线程编程中的经典问题。今天本文就来带大家手写一个生产者消费者模式 #1.阻塞队列 public class CustomBlockLinkedList<E> { //内部使用链表实现 private LinkedList<E> linkedList; //队列容量最大
阅读全文
摘要:概念 MESI(Modified Exclusive Shared Or Invalid)(也称为伊利诺斯协议,是因为该协议由伊利诺斯州立大学提出)是一种广泛使用的支持写回策略的缓存一致性协议。 MESI协议中的状态 CPU中每个缓存行(caceh line)使用4种状态进行标记(使用额外的两位(b
阅读全文
摘要:##简介 Java的java.util.concurrent包中提供了并发相关的接口和类,本文将重点介绍CompletableFuture并发操作类 JDK1.8新增CompletableFuture该类 Class CompletableFuture<T> java.lang.Object jav
阅读全文
摘要:##单例模式 单例模式是我们在编程过程中经常使用的一种设计模式,它属于一种创建型模式。在这种设计模式中涉及到一个需要保证单例的一个类,通过这个类自身去创建本类的一个对象,同时在代码中的任何地方,能够获取到的此类对象都是同一个对象,从而保证此类的对象有且仅被创建一次。 此类提供一个静态的公共方法(pu
阅读全文
摘要:##一位群友分享的**公司面试题 **3个线程分别交替输出xyz字符,输出10遍** ``` public class XYZ implements Runnable { private static AtomicInteger atomicInteger = new AtomicInteger()
阅读全文
摘要:#线程的基本概念 ##进程与线程的区别 进程 解释:硬盘上有一个程序,这个程序叫做360.exe,这是一个程序,这个程序是一个静态的概念,它被存储在硬盘上,但我们单击它的时候,exe文件就会启动,这个时间叫做启动了一个进程。 线程 解释:作为一个进程里面最小的执行单元叫做一个线程,用简单的话讲一个程
阅读全文
摘要:标签(空格分隔): 多线程 ##park 和 unpark的使用 park和unpark并不是线程的方法,而是LockSupport的静态方法 暂停当前线程 LockSupport.park();//所在的线程调用 恢复某个线程的运行 LockSupport.unpark(暂停线程对象)//由另外的
阅读全文
摘要:线程常见的几种方法 标签(空格分隔): 多线程 ###Thread静态方法 1. Thread.sleep(misseconeds) 睡眠:当前线程暂停一段时间让给别的线程去运行。Sleep复活时间,根据你传入的睡眠时间而定,等到睡眠到规定的时间后,线程自动复活,它不会释放锁资源。 2. Threa
阅读全文
摘要:线程池的使用 标签(空格分隔): 多线程 ##Executors工具类(创建池与提交任务) 通过工具类,可以创建线程池 常见的几种线程池创建 ###通过Executors的静态方法创建线程池 ####1.创建固定大小的线程池(可用于服务器瞬时削峰、限流,但需注意长时间持续高峰情况造成的队列阻塞) E
阅读全文

浙公网安备 33010602011771号