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