问题描述 使用synchronized在一个非final对象上加了锁之后,在synchronized体(同步代码块)中,将该对象的值(状态)改变之后,会导致线程不安全,即其他线程会拿到改变之后对象的锁,从而进入同步代码块。 场景设计 场景说明 两个线程a1,a2,访问同一个AAA对象aaa(临界资源 ...
分类:
编程语言 时间:
2017-11-01 18:51:04
阅读次数:
167
前言 对于搞.net的朋友来说,经常会遇到关于事件和委托的问题:事件与委托有什么关系?事件的本质是什么?委托的本质又是什么?由于.net 做了大量的封装,对于初学者,这两个概念确实不怎么好理解。事件是用户与应用程序交互的基础,它是回调机制的一种应用。举个例子,当用户点击按钮时,我们希望弹出一句“您好 ...
状态者模式 一:状态者模式的定义 当一个对象的内在的状态改变时允许改变其行为,这个对象看起来像是改变了其类,状态者模式中主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转换到表示不同状态的一系列类当中,可以把复杂的判断逻辑简单化。如果这个状态的判断很简单,那就没有必须 ...
观察者模式 用于查看目标对象状态的对象,提供与核心功能非耦合的指定功能. ...
分类:
其他好文 时间:
2017-10-29 18:36:31
阅读次数:
132
之前做过一个作业,是编写五子棋、围棋游戏,因为需要界面,所以选择了QT框架。Qt 的核心机制之一是信号与槽,主要用来进行两个对象之间的通信。当一个对象状态改变时,可以发出一个信号,另一个对象则执行与这个信号绑定的槽函数,这种方式可以用来传递参数,也可以进行反馈行为。 这次作业主要涉及了三个类,分别为 ...
分类:
其他好文 时间:
2017-10-24 00:13:37
阅读次数:
331
一 、数据抽象 数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节。 数据抽象是一种依赖于接口(抽象类)和实现分离的编程(设计)技术。C++ 类为数据抽象提供了可能 数据抽象有两个重要的优势 类的内部受到保护,不会因无意的用户级错误导致对象状态受损。 类实现可 ...
分类:
编程语言 时间:
2017-10-22 11:11:32
阅读次数:
254
一:基本概念 1.什么是观察者模式 Observer模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。 Observer模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步。 2.观察者模式的UML结构 3.观察者模式 ...
分类:
其他好文 时间:
2017-10-18 23:45:23
阅读次数:
432
序列化操作对于开发人员来说最熟悉不过了。 序列化分为:序列化和反序列化。 序列化名词解释:序列化是将对象状态转换为可保持或传输的格式的过程。 与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。这就是序列化的意义所在。 我们可以把对象序列化为不同的格式,比如说, ...
在多线程环境下,如果某个类是有状态的,那我们在使用前,需要保证所有该类的实例对象状态一致,否则会出现意向不到的bug。下面是通用线程安全状态机的实现方法。 这种模式利用compareAndSet方法来操作枚举的原子引用,关于compareAndSet方法,其内部是CAS算法,即:Compare an ...
分类:
编程语言 时间:
2017-10-09 21:04:09
阅读次数:
210
java对象序列化的概念 序列化是将对象状态信息转换为可存储或传输的过程,序列化时,对象会将当前状态写入到临时或持久性的存储区。 一 java对象序列化的概念 1.序列化的概念 序列化的概念就是把一个Object直接转换成为Byte流写到硬盘或者通过网络进行传播。Java序列化技术可以将一个对象的状 ...
分类:
编程语言 时间:
2017-10-07 20:48:50
阅读次数:
137