并发编程之Disruptor并发框架

并发编程之Disruptor并发框架
一、什么是Disruptor Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易。这个系统是建立在JVM平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单。业务逻辑处理器完全是运行在内存中,使用事件源驱动方式。业务逻辑处理器的核心是Disr……继续阅读 »

admin 1年前 (2019-10-24) 128浏览 0评论 0个赞

并发编程之Java锁

并发编程之Java锁
一、重入锁 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized(重量级) 和 ReentrantLock(轻量级)等等 ) 。这些已经写好提供的锁为我们开发提供了便利。 重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。 在JAVA环境下 ReentrantLo……继续阅读 »

admin 1年前 (2019-10-22) 135浏览 0评论 0个赞

并发编程之Callable异步,Future模式

并发编程之Callable异步,Future模式
Callable 在Java中,创建线程一般有两种方式,一种是继承Thread类,一种是实现Runnable接口。然而,这两种方式的缺点是在线程任务执行结束后,无法获取执行结果。我们一般只能采用共享变量或共享存储区以及线程通信的方式实现获得任务结果的目的。 不过,Java中,也提供了使用Callable和Future来实现获取任务结果的操作。Callable……继续阅读 »

admin 1年前 (2019-10-19) 119浏览 0评论 0个赞

并发编程之线程池

并发编程之线程池
一、线程池 1、什么是线程池 Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序 都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 - 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 - 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 - 第三:提高线程的……继续阅读 »

admin 1年前 (2019-10-15) 120浏览 0评论 0个赞

并发编程之并发队列实现生产者与消费者

并发编程之并发队列实现生产者与消费者
一、并发队列 在并发队列上JDK提供了两套实现, 一个是以ConcurrentLinkedQueue为代表的高性能队列非阻塞, 一个是以BlockingQueue接口为代表的阻塞队列,无论哪种都继承自Queue。 1、阻塞队列与非阻塞队 阻塞队列与普通队列的区别在于: 阻塞队列: - 当队列是空的时,从队列中获取元素的操作将会被阻塞,试图从空的阻塞队列中获取……继续阅读 »

admin 1年前 (2019-10-13) 114浏览 0评论 0个赞

并发编程之多线程线程安全

并发编程之多线程线程安全
一、什么是线程安全? 为什么有线程安全问题? 当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。 案例:需求现在有100张火车票,有两个窗口同时抢火车票,请使用多线程模拟抢票效果。 代码: public class ThreadTrain implements Runn……继续阅读 »

admin 1年前 (2019-10-07) 175浏览 0评论 0个赞

并发编程之多线程(Java)

并发编程之多线程(Java)
一、线程与进程区别 每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行 使用线程可以把占据时间长的程序中的任务放到后台去处理,程序的运行速度可能加快……继续阅读 »

admin 1年前 (2019-10-06) 126浏览 0评论 0个赞