`
atomduan
  • 浏览: 6756 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

焦虑的程序员--关于“保序”

阅读更多
睡不着.....~!
/**
	 * 恩,为什么要有这个类呢,因为在做stop操作的时候,首先要“通知”所有的服务实例停止服务对其进行卸载,然后要再执行doStopProcess()释放资源
	 * 这个时候就需要有个对象能建立起服务实例和拥有他们的服务组件之间的一个信息通道。
	 * 以下方法都有同步操作,但是使用场景是服务实例的数量控制,不属于高并发场景,
	 * 
	 * 以下的方法实际上是在“服务组件”的生命周期的背景下,对“服务实例”的生命周期进行控制,
	 * 所以:这些方法的设计和调用必须是---“有序的”!要想尽各种方法保证这种调用的有序性~!!!!
	 * 
	 * "Happens Before"--很有力的思考工具啊,对于“保序”的检查分析很给力啊。
	 * 
	 * 实际上,该类是以“状态检查”加“同步”的手段确定以下定义方法的“保序性”!
	 * 
	 * 不可能孤立的写同步代码,同步代码必须相互影响的几个方法之间进行协调,所以我们必须将这个范围控制的尽量小,尽量通过数据锁控制同步
	 * 从而可以在写作的过程中,得到尽可能强的确定性行为的推断。然后再是性能调优。
	 * 
	 * serviceInstanceKeeper现在是在一个同步器内部,所以她的方法只可能在服务组件处于STARTED和STOPPED状态才能被调用了,减少了一个BORN状态的考虑。
	 */
	private final class ServiceInstanceKeeper {
分享到:
评论

相关推荐

    通信阶段------循序渐进4

    通信阶段——循序渐进4 在这个专题中,我们将深入探讨通信阶段的第四部分,重点关注在软件开发中,特别是IT领域中的通信技术和方法。通信是任何系统之间交换信息的基础,无论是设备之间的通信,还是人与人之间的...

    黑马程序员入学面试题

    - **UDP(用户数据报协议)**:无连接的协议,不保证数据的可靠传输,也不保证数据按序到达,但速度快。 #### 13. 什么是暴力反射 暴力反射是一种非常规的反射技术,它可以绕过Java的安全限制,强制访问私有成员和...

    程 序 员 考 试 试 卷

    程序员考试试卷是一个集合,包含了针对程序员进行能力评估和测试的相关题目。这个压缩包可能包括了多种格式的文件,如PDF和DOC,这两种格式都是常见的文档类型,用于存储文本信息和结构化内容。让我们深入探讨一下...

    程序员心得

    敏捷开发是一种以人为核心、迭代、循序渐进的开发方法,强调适应变化和快速响应。以下是关于敏捷开发的26个心得所涵盖的核心原则: 1. **单一任务完成原则**:开发过程中,应专注于一个用例的完整实现,确保其功能...

    程序员算法

    - 只适用于预先排好序的数组。 - 查找效率高,每次比较都将搜索范围减半。 **算法步骤:** 1. **中间元素比较**:确定数组中间元素,如果目标值等于中间元素,则查找成功。 2. **缩小范围**:如果目标值大于中间...

    面试ASP.NET程序员的笔试题和机试题

    TCP确保数据按序无误地传输,适用于需要高可靠性的应用场景。 - UDP(User Datagram Protocol)是一种无连接的协议,不保证数据的顺序和完整性。UDP提供了一个简单的数据报服务,适用于实时应用如语音通话等,这些...

    三菱PLC程序源码-4个三菱4DA驱动15个压延电机和序.zip

    4. **程序源码**:源码是程序员编写的原始程序,用以控制PLC的行为。在这个项目中,源码可能使用了三菱PLC的专用编程语言,如Ladder Diagram(梯形图)或Structured Text,以实现对4个4DA驱动器和15个电机的控制逻辑...

    C语言字节序比特序

    在C语言中,字节序与比特序是基础概念,它们描述了计算机内存中数据的存储方式和位的排列顺序。理解这些概念对于处理二进制数据、进行底层编程或开发跨平台应用至关重要。 1. 大小端的概念 大小端模式(Endianness...

    大多数程序员所接触到的套接字(Socket)为两类:

    - **可靠性**:提供无差错、无重复、按序的数据传输。 - **面向连接**:在数据传输之前需要先建立连接,即三次握手过程。 - **全双工模式**:支持数据在两个方向上的同时传输。 - **流量控制和拥塞控制**:内置机制...

    Cortex-M3 Programming manual

    6. **内存字节序**:定义了Cortex-M3如何处理大端和小端数据格式。 7. **同步原语**:介绍了用于同步多线程或中断服务例程之间通信的机制,如锁和信号量。 8. **同步原语编程提示**:给出了一些实用的编程技巧,帮助...

    .NET程序员[整理].pdf

    描述同样重复了标题内容,说明这是一个关于.NET程序员的整理文档,不过实际上并没有给出更具体的信息来描述文档的内容。由于描述部分内容与标题重复,且没有提供额外信息,我们可以假设该文档可能是一本综合性的.NET...

    论文报告1-黄科乐SharedMemoryConsistency1

    3. 理解顺序一致性:在顺序一致性模型中,每个处理器按照程序顺序发出内存操作,而系统提供全局的串行化,使得所有内存操作在全球范围内按序执行。这确保了程序在并发环境下的行为与单线程执行时相同。 4. 实现顺序...

    程 序 员 羊 皮 卷 下 载 版

    《程序员羊皮卷》下载版是一份集合了丰富IT知识和经验分享的资源,它旨在为程序员提供指导,帮助他们在编程生涯中找到正确的路径并不断提升自己。这份资料可能包含了编程基础、进阶技术、项目管理、职业规划等多个...

    Marvell笔试题-IT.pdf

    2. **Endianess(字节序)**: - **Big Endian**:高字节存储在低地址,低字节存储在高地址。 - **Little Endian**:低字节存储在低地址,高字节存储在高地址。例如,整数1234(0x04030201)在Little Endian系统中...

    TIA博途-32位浮点数大小端存储-高低字节转换全局FB库文件(4种字节排列顺序)-V17版本.zip

    在实际应用中,这些函数块可以被程序员调用,以便在处理32位浮点数时正确地进行字节顺序转换,确保数据的正确传输和解释。这对于跨平台的数据交换,尤其是在分布式系统或者网络通信中,具有重要意义。 总之,TIA...

    socket编程

    它本质上是对TCP/IP协议的一种封装,使得程序员能够通过简单的API调用来实现复杂的网络通信功能。 - **定义**:Socket是用于描述IP地址和端口的一个逻辑通信链路的句柄。 - **作用**:在Internet上运行多个服务的...

    S7-200SMART任意连续字节数据高低字节调换库文件及使用说明.zip

    总之,"S7-200SMART任意连续字节数据高低字节调换库文件"是一个实用的工具,可以帮助程序员更方便地处理字节顺序问题。通过学习和使用这个库,你可以避免手动编写复杂的字节交换代码,提高编程效率,并保证与不同...

    169程序注释_simp169行程序注释_measureirq_拓扑优化_优化_源码.zip

    该压缩包文件“169程序注释_simp169行程序注释_measureirq_拓扑优化_优化_源码.zip”包含了关于程序注释、中断测量(measureirq)、系统拓扑优化以及代码优化的相关知识。以下是这些主题的详细说明: **程序注释** ...

Global site tag (gtag.js) - Google Analytics