- 博客(14)
- 收藏
- 关注
原创 Java并发编程——线程池的使用(七)线程池的可执行任务:Future和Callable
一、回顾线程池的创建首先我们先来回顾下创建线程池:ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<Runnable>());线程池的submit可以提交一个Callable任务,Future的get方法可以获取到Callable的call
2017-12-28 13:24:42 634
原创 Java并发编程——分治编程
分治算法是五大常用算法之一,本来不应该在这个时间写这篇博客,因为之前的线程池还没有写完,有些知识点也是需要用到的线程池的,但是架不住现在的项目里有个坑队友,名曰大乒乓,他好像是批量注册用户还是什么(暂时就先当做是批量注册吧~),反正就是很多很多用户,每个用户大概0.5秒左右的注册时间,要睡觉时我问他,你的电脑怎么还开着啊,他说在那注册用户呢,得跑一宿···几千条还是几万条,就一个主线程for循环在那
2017-12-27 14:42:29 945
原创 Java并发编程——线程池的使用(五)延时执行的线程池ScheduledExecutorService
一、ScheduledExecutorService的延时执行功能
2017-12-25 16:55:38 22225 2
原创 Java并发编程——线程池的使用(四)线程池的更多用法
一、shutdownNow配合Thread.currentThread().isInterrupted()使用先看下代
2017-12-25 16:33:15 305
原创 Java并发编程——线程池的使用(三)线程池执行任务、取消任务
一、线程池执行Runnable任务executor.execute(runnable) executor.execute(new Runnable() { @Override public void run() { System.out.println("执行任务"); }
2017-12-25 15:22:12 6445
原创 Java并发编程——线程池的使用(二) 手动创建线程池以及线程池的拒绝策略
一、线程池的普通创建 我们也可以直接手动创建一个线程池:ThreadPoolExecutor executor = new ThreadPoolExecutor( 5, 10, 60, TimeUnit.SECONDS, new LinkedBloc
2017-12-25 15:19:14 5019
原创 Java设计模式——外观模式
外观模式说,也叫门面模式,这个模式简单也简单,说复杂也复杂。简单是因为,外观模式很好理解,有可能你已经用到过这个模式,只是你还不知道这个是外观模式。说复杂是因为外观模式是为了将复杂的逻辑封装起来,向外暴露出一个/多个简单的接口供使用者使用,而这个“复杂的逻辑”根据实际情况会有不同的难度。一、定义 为子系统提供若干个接口,外观模式提供一个高层级的接口,外界只需调...
2017-12-21 14:50:30 214
原创 Java设计模式——适配器模式
适配器模式,顾名思义,它的职责就是做适配,将两个不兼容的东西,通过适配器的连接,变得兼容起来。有些情况下,需要兼容的二者并不能修改,所以需要“适配器”这个中间件做一个桥接。一、定义适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。UML:Target:目标角色,也就是期待得到的接口,可以不是类,比如...
2017-12-20 11:18:14 222
原创 Java设计模式——装饰者模
装饰者模式,其实不难理解,简单地说就是装饰者和被装饰者拥有共同的超类,装饰者只是丰富了行为,拓展了功能,而类型是不变的。说起来可能比较抽象,接下来通过一个简单的例子来实现一个装饰者模式。一、定义动态的给一个对象添加一些额外的职责或者功能,就增加功能来说,装饰者模式相比生成子类更为灵活。大多数情况下被装饰者不需要操心自己具体要做什么,交给装饰者去装饰就好了UML:...
2017-12-20 10:05:44 168
原创 Java并发编程——CyclicBarrier和Phaser
一、CyclicBarrier CyclicBarrier拥有CountDownLatch的功能(CountDownLatch的介绍请看我的另一篇博客: Java并发编程——Semaphore (信号量)和CountDownLatch ),任何一个线程在没有完成时,所有线程都在等待。有点类似于屏障的意思,比如百米赛跑,需要等所有运动员都到达起跑线后,裁判才会鸣枪,这个“起跑线
2017-12-19 14:22:35 775 1
原创 Java并发编程——Semaphore (信号量)和CountDownLatch
一、Semaphore (信号量) 说简单点,Semaphore维护了一个许可集合,在创建Semaphore的时候,设置上许可数,每条线程在只有在获得一个许可的时候才可以继续往下执行逻辑(申请一个许可,则Semaphore的许可池中减少一个许可),没有获得许可的线程会进入阻塞状态。举个栗子:public static void main(String[] args) {...
2017-12-19 10:54:09 3518 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人