码迷,mamicode.com
首页 >  
搜索关键字:原子操作    ( 862个结果
Java 下实现锁无关数据结构--转载
介绍通常在一个多线程环境下,我们需要共享某些数据,但为了避免竞争条件引致数据出现不一致的情况,某些代码段需要变成原子操作去执行。这时,我们便需要利用各种同步机制如互斥(Mutex)去为这些代码段加锁,让某一线程可以独占共享数据,避免竞争条件,确保数据一致性。但可惜的是,这属于阻塞性同步,所有其他线程...
分类:编程语言   时间:2014-10-31 18:56:36    阅读次数:225
多线程编程之原子锁
在《多线程编程之数据访问互斥》一文中简单介绍了原子锁,这里再详细说一下原子锁的概念和用途。(1)简单数据操作 如果在一个多线程环境下对某个变量进行简单数学运算或者逻辑运算,那么就应该使用原子锁操作。因为,使用临界区、互斥量等线程互斥方式将涉及到很多操作系统调用和函数调用等,效率肯定不如原子操作...
分类:编程语言   时间:2014-10-31 11:35:27    阅读次数:214
线程安全
1,原子操作 通常cpu的最小执行单元是一条指令,是不会被打断的。我们把单条指令的操作成为是原子的,但是像自增或自减这样的操作由几条指令组成,是非原子操作。window提供了一些专门的原子操作的API: 2,同步与...
分类:编程语言   时间:2014-10-30 02:12:46    阅读次数:256
atomic_t原子操作
所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用了物理学里的物质微粒的概念。 原子操作需要硬件的支持,因此是架构相关的,其API和原子类型的定义都定义在内核源码树的include/asm/atomi....
分类:其他好文   时间:2014-10-28 19:27:27    阅读次数:218
线程安全
如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就.....
分类:编程语言   时间:2014-10-26 14:19:42    阅读次数:180
spin_lock & mutex_lock的差别?
本文由该问题引入到内核锁的讨论,归纳例如以下为什么须要内核锁?多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是能够訪问全部内核数据的,因此要对共享数据进行保护,即相互排斥处理有哪些内核锁机制?(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
iOS多线程编程:线程同步总结 NSCondtion
1:原子操作 - OSAtomic系列函数 iOS平台下的原子操作函数都以OSAtomic开头,使用时需要包含头文件<libkern/OSBase.h>。不同线程如果通过原子操作函数对同一变量进行操作,可以保证一个线程的操作不会影响到其他线...
分类:移动开发   时间:2014-10-21 23:22:02    阅读次数:434
AtomicInteger类
AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。 来看AtomicInteger提供的接口。 public final int get() //取当前的值,并设置...
分类:其他好文   时间:2014-10-21 21:44:35    阅读次数:190
Java并发编程 - 关于不变性的一些思考
这篇记录一下保证并发安全性的策略之——不变性。(注意:是Immutable,不是Invariant!)将一连串行为组织为一个原子操作以保证不变性条件,或者使用同步机制保证可见性,以防止读到失效数据或者对象变为不一致状态,这些问题都是因为共享了可变的数据。如果我们能保证数据不可变,则这些复杂的问题就自...
分类:编程语言   时间:2014-10-21 21:05:45    阅读次数:292
862条   上一页 1 ... 77 78 79 80 81 ... 87 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!