架构师
而立之年88
这个作者很懒,什么都没留下…
展开
-
Nginx 安装和使用 +keepalived高可用
一、安装Nginx: 1 : wget下载: http://nginx.org/download/nginx-1.4.2.tar.gz 2 : 进行安装: tar -zxvf nginx-1.6.2.tar.gz 3 : 下载锁需要的依赖库文件: yum install pcre yum install pcre-devel yum install zlib yum i原创 2017-04-23 09:37:50 · 373 阅读 · 0 评论 -
并发编程(一)
一、线程安全概念: 当多个线程访问某一个类(对象或方法)是,这个类始终都能表现出正确的行为,那么这个类(对象或方法),就是线程安全的。synchronized :可以在任意对象及方法上加锁,而加锁的这段代码称为“互斥区”或“临界区”实例代码:/** * 线程安全概念:当多个线程访问某一个类(对象或方法)时,这个对象始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的。 ...原创 2018-02-27 13:54:26 · 214 阅读 · 0 评论 -
并发编程(五)
一、多线程的设计模式 并行设计模式属于设计优化的一部分,它是对一些常有的多线程结构的总结和抽象。于串行程序相比,并行程序的结构通常更为复杂。以此合理的使用并行模式在多线程开发中更具有意义,这里主要介绍Future、Master-Worker和生产者-消费者模型。1、Future模式 Future模式有点类似于商品订单。比如在购物时,当看重某一件商品时,就可以提交订单,当订单处理完成后...原创 2018-03-07 15:33:31 · 143 阅读 · 0 评论 -
并发编程(二)
一、volatile 关键字valatile关键字主要作用是使变量再多个线程间可见性。不能保证变量具备有原子性。不能实现多线程间数据同步共享。public class RunThread extends Thread{ //加上volatile关键字实现主线程和rt线程之间变量的可见性 private volatile boolean isRunning = true; private ...原创 2018-03-01 15:26:48 · 189 阅读 · 0 评论 -
并发编程(三)
一、使用wait、notify模拟Queue BlockingQueue:顾名思义,首先它是一个队列,并且支持阻塞的机制,阻塞的放入和得到数据。我们要实现LinkedBlockingQueue下面两个简单的方法put和take。 put(anObject):把anObject加到BlockingQueue里,如果BlockQueue没有空间,则调用此方法的线程被阻断,直到Blockin...原创 2018-03-01 17:25:44 · 163 阅读 · 0 评论 -
并发编程(四)
一、并发Queue在并发队列上JDK提供了两套实现,一个是以ConcurrentLinkedQueue为代表的高性能队列,一个是以BlockingQueue接口为代表的阻塞队列,无论哪种都继承自Queue。1、ConcurrentLinkedQueue:是一个适用于高并发场景下的队列,通过无锁的方式,实现了高并发状态下的高性能,通常ConcurrentLinkedQueue性能好于Blocking...原创 2018-03-02 14:43:43 · 142 阅读 · 0 评论 -
并发编程高级篇(二)
一、Concurrent.util常用类 1、CyclicBarrier使用: 假设有只有的一个场景:每个线程代表一个跑步运动员,当运动员都准备好后,才一起出发,只要有一个人没有准备好,大家都等待。代码实例:public class UseCyclicBarrier { static class Runner implements Runnable { private...原创 2018-03-10 11:04:30 · 296 阅读 · 0 评论 -
并发编程高级篇(三)
一、重入锁和读写分离锁的使用1、锁 在java多线程中,我们知道可以使用synchronized关键字来实现线程间的同步互斥工作,那么其实还有一个更优秀的机制去完成这个“同步互斥”工作,他就是Lock对象,我们主要学习两种锁,重入锁和读写锁。他们具有比synchronized更为强大的功能,并且有嗅探锁定、多路分支等功能。ReentrantLock重入锁: 重入锁,在需要进行同步的代码...原创 2018-03-13 10:31:37 · 155 阅读 · 0 评论 -
并发编程框架篇(四)
一、disruptor框架1、disruptor矿机在jvm平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单。业务逻辑处理器完全是在内存中,使用事件源驱动方式。业务逻辑处理器的核心是Disruptor。2、disruptor它是一个开源的并发框架,并获得2011 Duke’s程序框架创新奖,能够在无锁的情况下实现网络的queue并发操作。3、Disruptor是一个高性能的...原创 2018-03-13 13:56:24 · 374 阅读 · 0 评论