依赖倒置原则定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,...
分类:
其他好文 时间:
2016-01-08 00:16:53
阅读次数:
165
java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,主要提供了以下功能:1、通过Unsafe类可以分配内存,可以释放内存;类中提供的3个本地方法allocateMemory、reallocateMemory、freeMemory分别用于分配内存,扩充内存...
分类:
编程语言 时间:
2016-01-06 23:34:35
阅读次数:
286
线程同步1.基本的原子操作可借助Inerlocked类,无需锁定任何对象即可获取到正确结果,Inerlock提供了Increment、Decement和Add等基本数学操作的原子方法:Interlocked.Incement(ref _count)2.Mutex类同步两个单独的线程,Mutex是一种...
分类:
编程语言 时间:
2016-01-06 23:18:39
阅读次数:
207
[转]http://www.parallellabs.com/2010/04/15/atomic-operation-in-multithreaded-application/多线程程序中操作的原子性0. 背景原子操作就 是不可再分的操作。在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一...
分类:
编程语言 时间:
2016-01-03 18:10:27
阅读次数:
227
property 关键字nonatomic 非原子操作,没有加锁解锁机制,线程不安全,速度快atomic 原子操作,有加锁解锁机制线程,安全,效率低内存strong---声明对一个不是自己创建的对象的拥有权,这个对象的retainCount +1retain----同strongweak-----不...
分类:
其他好文 时间:
2015-12-18 16:26:55
阅读次数:
139
Java5开始引入的Concurrent并发软件包里面的CountDownLatch其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数器里面的值。CountDownLatch的一个非常典型的应用场景是:有一个任务想要...
分类:
编程语言 时间:
2015-12-05 19:27:21
阅读次数:
187
事务就是将一系列的动作当做一个单独的工作单元.这些动作要么全部完成,要么全部不管用事务的四个关键属性(ACID):–原子性(atomicity):事务是一个原子操作,由一系列动作组成.事务的原子性确保动作要么全部完成要么完全不起作用.–一致性(consistency):一旦所有事务动作完成,事务..
分类:
编程语言 时间:
2015-11-30 18:19:15
阅读次数:
188
原子操作即是进行过程中不能被中断的操作。针对某个值的原子操作在被进行的过程中,CPU绝不会再去进行其他的针对该值的操作。
为了实现这样的严谨性,原子操作仅会由一个独立的CPU指令代表和完成。GO语言提供的原子操作都是非入侵式的,由标准库sync/atomic中的众多函数代表
类型包括int32,int64,uint32,uint64,uintptr,unsafe.Pointer,共六个。
这些...
分类:
其他好文 时间:
2015-11-29 15:06:06
阅读次数:
233
NSLock (0)为什么上锁 1.atomic(原子操作)是指不会被线程机制打断,这种操作一旦开始就运行到结束,中间不会有任何的切换 2.我们可以通过(NSLock)使这段代码成为原子操作 3.使用线程锁,不是服务于线程,而是服务于代码,如果我们想对一段代码进行原子从操作的时候(数据库的写入).....
分类:
移动开发 时间:
2015-11-26 09:24:05
阅读次数:
181
//解释 property后边的圆括号中的修饰词的含义:// nonatomic 非线程安全 非原子操作 特点是: 操作变量的效率高// atomic 线程安全 原子操作 特点是: 操作变量的效率低//// retain 强引用实例变量, 即 setter方法中会...
分类:
其他好文 时间:
2015-11-12 20:15:15
阅读次数:
278