摘要: 在正式介绍生产者消费者模型之前,我们先来认识一下阻塞队列。 阻塞队列是特殊的队列,是在先进先出的基础上加了一些特殊的功能: 1)如果队列为空,线程要执行出队操作时,就会进入阻塞,阻塞直到另一个线程往队列里添加元素; 2)如果队列满了,线程要进行入队操作时,就会进入阻塞,直到有另一个线程从队列里取走元 阅读全文
posted @ 2023-09-04 18:48 司丝思 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 单例模式是只有单个实例的模式,应用在只能有一个实例的场景中。单例模式有很多种,这里介绍饿汉模式和懒汉模式两个单例。 一、饿汉模式 “饿汉”是一种形象的描述,“饿汉”看到吃的就非常急切,把这种急切的形象类比到Java中就是在类加载阶段就把实例创建出来了。什么是类加载?Java代码中的每个类,都会在编译 阅读全文
posted @ 2023-09-02 17:54 司丝思 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 线程执行顺序的随机性的根本原因是随机调度和抢占式执行,但在开发的过程中,我们往往希望代码按照一定的顺序执行,因此Java中提供了一些可以控制线程执行顺序的方法,通过这些方法让线程主动阻塞,让出CPU资源。wait搭配notify使用就可以控制线程的执行顺序。 wait和notify如何使用呢?我们借 阅读全文
posted @ 2023-09-01 00:12 司丝思 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 一、内存可见性问题 先来看如下代码 class MyCounter{ public int flag = 0;}public class ThreadDemo22 { public static void main(String[] args) { MyCounter myCounter = new 阅读全文
posted @ 2023-08-29 18:24 司丝思 阅读(9) 评论(0) 推荐(0) 编辑
摘要: public class ThreadDemo19 { private static Object o1 = new Object(); private static Object o2 = new Object(); public static void main(String[] args) { 阅读全文
posted @ 2023-08-28 17:56 司丝思 阅读(3) 评论(0) 推荐(0) 编辑
摘要: class Counter{ public int count = 0; public void add(){ count ++; }}public class synDemo { public static void main(String[] args) { Counter counter = 阅读全文
posted @ 2023-08-24 17:13 司丝思 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2023-08-24 14:54 司丝思 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2023-08-16 17:09 司丝思 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2023-08-06 12:11 司丝思 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2023-08-05 18:27 司丝思 阅读(2) 评论(0) 推荐(0) 编辑