什么是异步调用? 异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完即可执行。 如何实现异步调用? 多线程,这是很多人第一眼想到的关键词,没错,多线程就是一种实现异步调用的方式。 在非spring目项目中我们 ...
分类:
编程语言 时间:
2018-05-27 12:12:07
阅读次数:
348
YARN采用了基于事件驱动的并发模型,该模型能极大的提高应用程序并发性,在RM中,几乎所有的事件都通过AsyncDispatcher进行事件的派发. YARN中AsyncDispatcher的基本架构图如下: 然后再学习一下AsyncDispatcher的类图: 所有的event 从基本的架构图可以 ...
分类:
其他好文 时间:
2018-05-25 21:31:59
阅读次数:
195
阻塞队列是 java.util.concurrent 包提供的一个类,该类提供了多线程中通过队列实现安全高效的数据处理的功能。 所谓阻塞队列,是在普通队列基础上实现了阻塞线程的功能: 队列为空时,获取元素的线程阻塞,直到队列变为非空。 当队列满时,存储元素的线程阻塞,直到队列可用(非满)。 以下是阻 ...
分类:
其他好文 时间:
2018-05-23 14:59:48
阅读次数:
208
“线程同步”的含义 当一个进程启动了多个线程时,如果需要控制这些线程的推进顺序(比如A线程必须等待B和C线程执行完毕之后才能继续执行),则称这些线程需要进行“线程同步(thread synchronization)”。 线程同步的道理虽然简单,但却是给多线程开发带来复杂性的根源之一。当线程同步不好时 ...
分类:
编程语言 时间:
2018-05-21 16:22:25
阅读次数:
185
虽然关于讨论线程join方法的博客已经很多了,不过个人感觉挺多都讨论得不够全面,所以我觉得有必要对其进行一个全面的总结。 一、作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行执行。具体看代码: 上面程序结果是先打印完小明线程,在打印小东线程; 上面注释也大 ...
分类:
编程语言 时间:
2018-05-16 15:08:40
阅读次数:
211
题目链接: https://cn.vjudge.net/problem/POJ-3484 题目大意: 给出一系列等差数列,给出第一项和最后一项和公差 这些等差数列中每个数出现的次数只有一个是奇数,找出这个数,并求出其出现的次数 解题思路: 二分枚举这个数,但是只是二分这个数字的话,找不到二分的条件。 ...
分类:
其他好文 时间:
2018-05-12 23:56:25
阅读次数:
311
好了,你现在会了面向对象的各种语法了, 但是你会发现很多同学都是学会了面向对象的语法,却依然写不出面向对象的程序,原因是什么呢?原因就是因为你还没掌握一门面向对象设计利器, 此刻有经验的人可能会想到瀑布模型、螺旋模型、迭代开发、敏捷、RUP等一堆软件工程相关的软件开发流程,但对于大部分人来说这些流程 ...
分类:
编程语言 时间:
2018-05-12 10:24:37
阅读次数:
187
一饿汉模式 二、懒汉模式(线程安全) 三、使用静态内置类实现单例模式 四、使用static代码块实现单例模式 五、枚举实现单例模式 待完善 ...
分类:
编程语言 时间:
2018-05-11 20:24:01
阅读次数:
217
恢复内容开始 今天看了前辈们写的代码用到了afterPropertiesSet()的方法,就好好整理了spring的bean加载 1. InitializingBean.afterPropertiesSet() Spring中InitializingBean接口类为bean提供了定义初始化方法的方式 ...
分类:
编程语言 时间:
2018-05-10 17:32:01
阅读次数:
420
多线程程序在较低的层次上扩展了多任务的概念:一个程序同时执行多个任务,通常,每一个任务称为一个线程 多进程与多线程的区别本质上在于每个进程拥有自己的一套变量,而线程则共享数据。 共享变量使线程之间的通信比进程之间的通信更有效、更容易 1 什么是线程 1.1 使用线程给其他任务提供机会 下面是在一个单 ...
分类:
编程语言 时间:
2018-05-09 14:33:42
阅读次数:
198