04 2019 档案
摘要:前面那篇文章我们用wait和notify实现了生产者消费者模式,这篇文章我们用await和signalAll实现消费者模式,下面直接贴代码: 执行结果如下: 从上面代码可以看出,await和signalAll实现的生产者消费者模式和用wait和notify实现方式基本相同,不同的一点是用wait和s
阅读全文
摘要:有前面的基础我们基本上就可以实现一个经典的生产者消费者模式了,下面直接贴出代码: 执行结果如下: 我们来解释一下上面的代码,首先我们创建了一个容器Mycontainer4,我们在容器中定义了一个MAX变量,一个list变量,这个容器中有一个同步方法put,一个同步方法get,put方法往list中增
阅读全文
摘要:在前面的两篇文章中我们分别用volatile、notify()和wait()分别实现了一个场景,我们再来回顾一下前面的场景:在main方法中开启两个线程,其中一个线程t1往list里循环添加元素,另一个线程t2监听list中的size,当size等于5时,t2线程结束,t1线程继续执行,直到循环结束
阅读全文
摘要:前面的并发编程之volatile中我们用程序模拟了一个场景:在main方法中开启两个线程,其中一个线程t1往list里循环添加元素,另一个线程t2监听list中的size,当size等于5时,t2线程结束,t1线程继续执行,直到循环结束,上篇文章是用volatile来保证内存的可见性,从而访问共享内
阅读全文
摘要:前面的文章中我们的docker已经安装好了,我的最终目的是用docker来安装rabbitmq,所以本文我记录一下我用docker安装rabbitmq的过程: 1.下载镜像(下载management的,latest的在本机访问不到) 2.查看刚下载好的镜像 3.运行镜像 4.查看运行的镜像 看到如上
阅读全文
摘要:在学习springcloud的消息总线时,需要安装rabbitmq,因为rabbitmq是用erlang开发的,所以安装rabbitmq又需要先安装erlang,总之安装过程中遇到各种坑,然而最终还是没有安装成功,最后就打算放弃普通的安装方式,用基于docker的方式来安装,这也就是今天的主题:do
阅读全文
摘要:用代码描述这么一个场景,在main方法中开启两个线程,其中一个线程t1往list里循环添加元素,另一个线程t2监听list中的size,当size等于5时,t2线程结束,t1线程继续执行,直到循环结束,试着想一想,以下代码能不能实现: 答案是不行,输出结果如下,且程序并没有结束,一直处于运行状态 有
阅读全文

浙公网安备 33010602011771号