本文由该问题引入到内核锁的讨论,归纳例如以下为什么须要内核锁?多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是能够訪问全部内核数据的,因此要对共享数据进行保护,即相互排斥处理有哪些内核锁机制?(1)原子操作atomic_t数据类型,atomic_inc(atomic_t *v)将v...
分类:
其他好文 时间:
2014-10-23 13:59:45
阅读次数:
204
上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,如今来个复杂点的。这个问题涉及到线程的同步和相互排斥,是一道很有代表性的多线程同步问题,假设能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。程序描写叙述:主线程启动10个子线程并将表示子线程...
分类:
编程语言 时间:
2014-10-22 21:34:38
阅读次数:
177
事务的特性:1) 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行。2) 一致性(consistency):事务在完成时,必须是所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完...
分类:
数据库 时间:
2014-10-22 20:20:23
阅读次数:
231
本文讲的缓冲队列为链接方式, 链接方式一般通过预分配一个结点作为接力点来实现无锁队列, 优点是实现简单, 缺点是浪费一个结点的内存, 当结点内存块尺寸较大时浪费就大了。如何不浪费一个结点内存的链接方式无锁队列? 当队列中只有一个结点时, 本缓冲队列中使用了原子锁进行操作, 这是一种平衡策略, 若读者有更好方法不妨告之一下!...
分类:
编程语言 时间:
2014-10-22 12:57:41
阅读次数:
240
转自:http://blog.csdn.net/sunxing007/article/details/6427290数据库事务的4个特性:原子性(atomic):都成功或者都失败;一致性(consistency):事务操作之后,数据库所处的状态和业务规则是一致的;比如a,b账户相互转账之后,总金额....
分类:
数据库 时间:
2014-10-22 12:30:15
阅读次数:
259
首先用一句话总结要辨析的5中范式分别解决的问题:
1NF:属性原子性
2NF:部分依赖
3NF:传递依赖(非主属性对关键码)
BCNF:传递依赖(主属性对候选键)
4NF:(最高级别的范式,不常用这里引用定义)D是R上成立的FD和MVD集合,并且D中每个非平法的X→→Y的左部X都是R的超键
其中第一范式,画图省略。第四范式不常用画图省略。
2NF如下:
3NF:
...
分类:
其他好文 时间:
2014-10-22 01:08:01
阅读次数:
257
1:原子操作 - OSAtomic系列函数 iOS平台下的原子操作函数都以OSAtomic开头,使用时需要包含头文件<libkern/OSBase.h>。不同线程如果通过原子操作函数对同一变量进行操作,可以保证一个线程的操作不会影响到其他线...
分类:
移动开发 时间:
2014-10-21 23:22:02
阅读次数:
434
AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。
来看AtomicInteger提供的接口。
public final int get()
//取当前的值,并设置...
分类:
其他好文 时间:
2014-10-21 21:44:35
阅读次数:
190
这篇记录一下保证并发安全性的策略之——不变性。(注意:是Immutable,不是Invariant!)将一连串行为组织为一个原子操作以保证不变性条件,或者使用同步机制保证可见性,以防止读到失效数据或者对象变为不一致状态,这些问题都是因为共享了可变的数据。如果我们能保证数据不可变,则这些复杂的问题就自...
分类:
编程语言 时间:
2014-10-21 21:05:45
阅读次数:
292
关于宇宙大爆炸的理论模型 请看下图: 这是宇宙大爆炸概念的示意图,竖坐标轴代表宇宙膨胀(大爆炸)过程的时间轴。示意图下方倒立的锥体顶部代表宇宙起源的次原子(SubAtoms)物质团(黄红色),是温度与密度均极高的宇宙原始物质团。我们所在的银河系星(云团)随着时间轴的向上移动,处在不断地膨胀之中。眼....
分类:
其他好文 时间:
2014-10-21 13:40:59
阅读次数:
226