前言 Host startup hook,是2.2中提供的一项新的功能,通过使用主机启动钩子,允许开发人员在不修改代码的情况下,在服务启动之前注入代码;通过使用钩子,可以对已部署好的服务在服务启动期间自定义托管程序的行为;通过使用钩子,可以对服务进行跟踪或者遥测,也可以在服务启动前对托管环境进行健康 ...
分类:
Web程序 时间:
2018-12-19 10:11:55
阅读次数:
197
基础篇幅:线程基础知识、并发安全性、JDK锁相关知识、线程间的通讯机制、JDK提供的原子类、并发容器、线程池相关知识点 高级篇幅:ReentrantLock源码分析、对比两者源码,更加深入理解读写锁,JAVA内存模型、先行发生原则、指令重排序 环境说明: idea、java8、maven 第四章-- ...
分类:
编程语言 时间:
2018-11-09 12:12:49
阅读次数:
187
原文:https://www.cnblogs.com/1996V/p/9037603.html 应用程序域 传统非托管程序是直接承载在Windows进程中,托管程序是承载在.NET虚拟机CLR上的,而在CLR中管控的这部分资源中,被分成了一个个逻辑上的分区,这个逻辑分区被称为应用程序域,是.NET ...
分类:
其他好文 时间:
2018-10-16 17:50:56
阅读次数:
183
先行发生原则,可以帮你判定是否并发安全的,从而不必去猜测是否是线程安全了! 如果Java内存模型中所有有序性都靠volatile和synchronized来完成,那么编写代码会很繁琐,但日常Java开发中并没有感受到这一点,正是因为Java语言的“先行发生”原则。这个原则非常重要,它是判断数据是否存 ...
分类:
其他好文 时间:
2018-10-01 11:57:37
阅读次数:
207
Java虚拟机可以支持方法级的同步和方法内部一段指令序列的同步,这两种同步结构都是使用管程(Monitor)来支持的。 方法级的同步是隐式的,即无须通过字节码指令来控制,它实现在方法调用和返回操作之中。虚拟机可以从方法常量池的方法表结构中的ACC_SYNCHRONIZED访问标志得知一个方法是否声明... ...
分类:
其他好文 时间:
2018-09-22 23:16:26
阅读次数:
209
尽管程度不同,但PM的每个级别都在践行过程改进,并在4级借助数据,达到了“登峰造极”的程度。随着量化与统计分析的深入,项目会被优化到极其稳定的状态,组织的过程改进也就此进入了平台期。 平台期可以被视为是前一阶段改进的高峰,也可看做是下一阶段的改进瓶颈。 前面的文章中,我们讨论了企业生命周期的5个阶段 ...
分类:
其他好文 时间:
2018-09-06 14:45:30
阅读次数:
122
finally是保证语句能一定执行的。不管程序是否会报错,我们把程序一定要执行的代码放在finally中。 比如说流的关闭,不管在读写的过程中是否报错,一定要关闭流,可以把流的关闭操作放在finally中。 代码展示如下所示: package exception; import java.io.Fi ...
分类:
编程语言 时间:
2018-09-04 18:59:35
阅读次数:
178
交互式并发进程通过信号量及PV操作可以实现进程的互斥与同步,例如生产者-消费者就是一组相互协作的进程,它们通过信号量来协同工作,并引入有界缓冲区来存取。这种低级通信方式不方便而且局限性很大。 管程适用于高级程序设计编程,它把分散在各进程中的临界区集中统一管理,采用阻塞/唤醒+集中临界区和一次状态测试 ...
分类:
系统相关 时间:
2018-08-29 17:57:52
阅读次数:
286
1、Keepalived高可用的工作原理工作原理:在Keepalived服务正常工作时,主Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活着,当主Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检查到来自主Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的IP资源及服务。而当主Master节点恢复时,备Ba
分类:
其他好文 时间:
2018-07-18 23:15:05
阅读次数:
148
近期在学习c#编程基础,而之前有了解过c语言,这不禁让我疑惑:c语言与c++、c#有什么区别呢? 经过查询资料,我总结出他们之间的不同: C/C++/C#准确的说,是三种语言。 C语言既具有高级语言的特点,又具有汇编语言的特点。C面向过程,开发非托管程序,编译成exe是二进制可执行文件,不可跨平台。 ...
分类:
编程语言 时间:
2018-07-08 19:08:08
阅读次数:
191