设计模式 设计模式六大原则: 开闭原则:一个软件实体入类、模块和函数应该对扩展开放,对修改关闭。即软件实体应该在不修改原有代码的情况下进行扩展 里氏替换原则:所有引用基类(父类)的地方必须能够透明的使用其子类的对象 依赖倒置原则:高层模块不应该依赖底层模块,二者都应该依赖其抽象:抽象不应该依赖细节; ...
分类:
其他好文 时间:
2018-08-07 22:53:12
阅读次数:
153
Windows 多线程之原子操作 1. 原子操作 ? 一个操作如果能够不受中断地完成,我们称之为原子操作。 c++ include include const unsigned int THREAD_NUM = 100; unsigned int g_Count = 0; DWORD WINAPI ...
分类:
其他好文 时间:
2018-08-04 17:31:12
阅读次数:
149
? 简单的直方图,强调原子操作的使用 ● 代码 ● 输出结果,在 Windows 里是错的,在 WSL 里是对的 ● 更新!!!把代码改了一下,在 Windos 下也正确了,还是简单语句的问题 ...
分类:
其他好文 时间:
2018-08-03 22:36:15
阅读次数:
228
1.今天写一篇使用AOP进行事务管理的示例,关于事务首先需要了解以下几点 (1)事务的特性 原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。 一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建 ...
分类:
编程语言 时间:
2018-07-31 17:14:09
阅读次数:
158
前言 对于Java多线程,接触最多的莫过于使用synchronized,这个简单易懂,但是这synchronized并非性能最优的。今天我就简单介绍一下几种锁。可能我下面讲的时候其实很多东西不会特别深刻,最好的方式是自己做实验,把各种场景在代码中实验一下,这样发发现很多细节。 volatile 作为 ...
分类:
编程语言 时间:
2018-07-29 18:55:57
阅读次数:
148
在并发编程中,多线程同时并发访问的资源叫做临界资源,当多个线程同时访问对象并要求操作相同资源时,分割了原子操作就有可能出现数据的不一致或数据不完整的情况,为避免这种情况的发生,我们会采取同步机制,以确保在某一时刻,方法内只允许有一个线程。 采用synchronized修饰符实现的同步机制叫做互斥锁机... ...
分类:
其他好文 时间:
2018-07-26 01:04:58
阅读次数:
136
这节来说说mongodb条件操作符,"$lt", "$lte", "$gt", "$gte", "$ne"就是全部的比较操作符,对应于"<", "<=", ">", ">=","!="。 原子操作符:"$and“, "$or“, "$nor“。 or查询有两种方式:一种是用$in来查询一个键的多个值 ...
分类:
数据库 时间:
2018-07-22 20:06:51
阅读次数:
187
Java并发编程:volatile关键字解析 (点击链接原文) volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽 ...
分类:
编程语言 时间:
2018-07-18 23:27:01
阅读次数:
199
根据修改的数据类型,可以将JUC包中的原子操作类可以分为4类。 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ; 2. 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray... ...
分类:
其他好文 时间:
2018-07-16 11:35:00
阅读次数:
125
【CAS机制】 指的是CompareAndSwap或CompareAndSet,是一个原子操作,实现此机制的原子类记录着当前值的在内存中存储的偏移地址,将内存中的真实值V与旧的预期值A做比较,如果不一致则说明内存中的值被其他线程修改过了,返回false,否则将新值B存入内存。 Java内部是使用本地 ...
分类:
编程语言 时间:
2018-07-13 17:45:40
阅读次数:
324