自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Java互联网架构学习----002--01】生产者-消费者模式

生产者/消费者模式:需要使用到同步,以及线程,属于多并发行列产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。单单抽象出生产者和消费者,还够不上是生产者/消费者模式。该模式还需要有一个缓冲区处于生产者和消费者之间,作为一个中介。生产者把数据放入缓冲区,而消费者从缓冲区取出数据。生产者:package com.neo.study002.radio01;import java.util.Random;import java.util.concurrent.LinkedBl.

2020-05-14 00:32:47 152

原创 【Java互联网架构学习----001--17】并发模式Master-Worker模式

并发模式Master-Worker模式核心思想:系统由两类进程协同工作,即Master进程和Worker进程,Master负责接收和分配任务,Wroker负责处理子任务。当各个Worker进程将子任务处理完成后,将结果返回给Master进程,由Master进程进行汇总,从而得到最终的结果.Master接收到了一个任务,对任务进行拆分,并且分配给各个Worker,让各个Worker之间各自运行各自的...

2020-05-06 23:05:18 102

原创 【Java互联网架构学习----001--16】并发模式Future模式

Future模式:是多线程设计常用的一种设计模式,类似商品订单。商品下单后,会立即得到下单成功的通知,客户不用等待后续商家的操作,只等配送到家即可,下单后到收到商品这段时间,客户可以做其他事情,不用在家等着商品。Future模式也类似Ajax的异步请求,不用等待处理结果。与传统模式的比较传统模式:客户端发出call请求,这个请求需要很长一段时间才能返回。客户端一直等待着,直到数据返回,随后...

2020-05-06 21:48:46 127

原创 【Java互联网架构学习----001--15】SynchronousQueue

SynchronousQueue:一个不存储元素的阻塞队列。每一个 put 操作必须等待一个 take 操作,否则不能继续添加元素。内部没有容器,一个生产线程,当它生产产品(即put的时候),如果当前没有人想要消费产品(即当前没有线程执行take),此生产线程必须阻塞,等待一个消费线程调用take操作,take操作将会唤醒该生产线程,同时消费线程会获取生产线程的产品(即数据传递),这样的一个过程称...

2020-04-27 23:52:19 396

原创 【Java互联网架构学习----001--14】LinkedBlockingQueue

LinkedBlockingQueue:不同于ArrayBlockingQueue,它如果不指定容量,默认为Integer.MAX_VALUE,也就是无界队列。所以为了避免队列过大造成机器负载或者内存爆满的情况出现,我们在使用的时候建议手动传一个队列的大小ArrayBlockingQueue的不同点在于:队列大小有所不同,ArrayBlockingQueue是有界的初始化必须指定大小,而L...

2020-04-26 23:46:53 116

原创 【Java互联网架构学习----001--13】ArrayBlockingQueue

ArrayBlockingQueue:数组实现的线程安全的有界的阻塞队列。线程安全是指,ArrayBlockingQueue内部通过“互斥锁”保护竞争资源,实现了多线程对竞争资源的互斥访问。而有界,则是指ArrayBlockingQueue对应的数组是有界限的。 阻塞队列,是指多线程访问竞争资源时,当竞争资源已被某线程获取时,其它要获取该资源的线程需要阻塞等待;数组的容量是创建ArrayBloc...

2020-04-26 23:38:34 122

转载 【Java互联网架构学习----001--12】ConcurrentLinkedQueue并发队列及BlockingQueue接口的实现类阻塞队列

ConcurrentLinkedQueue:一个基于链接节点的无界线程安全队列。此队列按照 FIFO(先进先出)原则对元素进行排序。队列的头部 是队列中时间最长的元素。队列的尾部 是队列中时间最短的元素。新的元素插入到队列的尾部,队列获取操作从队列头部获得元素。当多个线程共享访问一个公共 collection 时,ConcurrentLinkedQueue 是一个恰当的选择。此队列不允许使用 ...

2020-04-26 23:17:30 101

原创 【Java互联网架构学习----001--11】ConCurrent*类和CopyOnWriteArray*类

Concurrent*类的设计思想:锁分段技术,Concurrent*类是由Segment数组结构和HashEntry数组结构组成。Segment是一种可重入锁ReentrantLock,在ConcurrentHashMap里扮演锁的角色,Segment的结构和HashMap类似,是一种数组和链表结构,ConcurrentHashMap中默认是把segments初始化为长度为16的数组Conc...

2020-04-25 23:23:18 122

原创 【Java互联网架构学习----001--10】同步类容器和并发类容器

同步类容器:同步类容器都是线程安全的,但在某些场景下需要加锁来保证复合操作,复合操作指:迭代(遍历)、查询(根据指定顺序根据当前元素找到下一个元素、跳转)、以及条件运算例如:在容器迭代的过程中,容器被并发的修改了内容package com.neo.study001.redio10;import java.util.ArrayList;import java.util.Iterato...

2020-04-23 23:03:48 84

原创 【Java互联网架构学习----001--09】ThreadLocal的概念,单例与多线程

知识点1:ThreadLocal的概念:线程局部变量,使用空间换时间,解决多线程间并发访问变量的方案,完全不提供锁,为每个线程提供变量的独立副本,保证线程安全优劣:性能方面不具备绝对的优势,并发不是很高的场景下使用加锁会更好,在高并发或者竞争激烈的场景中,它作为一种无锁的,线程安全的解决方案,可以在一定程度上减少锁竞争...

2020-04-23 22:39:33 109

原创 【Java互联网架构学习----001--08】使用线程的wait()和notify()方法模拟队列Queue

简单使用wait()和notify()方法模拟队列Queue过程描述:.定义一个类队列类MyQueue,有两个方法,添加数据和取数据,此队列类有一个容器,容器有最大值和最小值,有一个计数器,还需要有一个对象锁,保证同步,即在多个线程操作同一对象的方法时需要按照我们的意愿进行操作package com.neo.study001.redio08;import java.util.Link...

2020-04-23 21:19:02 140

空空如也

空空如也

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

TA关注的人

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