volatile提供了弱同步机制,用来确保将变量更新通知到其他线程。volatile变量不会被缓存在寄存器中或者对其他处理器不可见的地方,因此在读取volatile变量时总会返回最新写入的值。能够想象成例如以下语义,然而volatile是更轻量级的同步机制。volatile仅仅能确保可见性,但不能保 ...
分类:
编程语言 时间:
2017-04-16 12:03:31
阅读次数:
160
内存可见性volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,倘若能恰当的合理的使用volatile,自然是美事一桩。为了能比..
分类:
编程语言 时间:
2017-04-14 21:32:51
阅读次数:
304
一个故事告诉你比特币的原理及运作机制周末花时间看了一些比特币原理相关的资料,虽然不敢说把每个细节都完全搞懂了,不过整体思路和关键部分的主要原理还是比较明白。写一篇文章分享给大家。这篇文章的定位会比较科...
分类:
其他好文 时间:
2017-04-12 20:01:19
阅读次数:
150
(一). Parallel communication Patterns 在上一章CUDA系列学习(二)CUDA memory & variables中我们介绍了memory和variable的不同类型,本章中根据不同的memory映射方式,我们将task分为以下几种类型:Map, Gather, ...
分类:
其他好文 时间:
2017-04-12 16:07:15
阅读次数:
371
转自:http://www.gameres.com/729629.html 此篇文章基于之前文章介绍的技能系统,主要介绍了如何实现MMO中的技能系统的同步。阅读此文章之前,推荐首先阅读前一篇文章:一个MMORPG的常规技能系统。 这里所说的技能系统包括:技能流程和技能创生体(法术场、弹道和buff) ...
分类:
其他好文 时间:
2017-04-07 15:42:05
阅读次数:
138
实验要求: 创建两个线程按数字顺序打印10以下自然数,其中一个线程打印1-3及8-10;另一个线程打印4-6。要求使用线程同步机制实现上述打印顺序。 看网上的资料学习了两种写法 C++11的,使用了std::thread 1 #include <unistd.h> 2 #include <threa ...
分类:
编程语言 时间:
2017-04-06 19:01:25
阅读次数:
271
ArrayListpublic class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.SerializableArrayList继承了AbstractList,实现了List,表示... ...
分类:
其他好文 时间:
2017-04-05 09:52:46
阅读次数:
212
进程:由程序段、相关的数据段和PCB三部分便构成了进程实体进程的特征:动态性、并发性、独立性、异步性进程的三种状态:就绪(Ready)状态 执行(Running)状态 阻塞(Block)状态 临界区:人们把在每个进程中访问临界资源的那段代码称为临界区。 同步机制应遵循的规则 (1)空闲让进 (2)忙 ...
分类:
系统相关 时间:
2017-04-05 09:39:42
阅读次数:
159
2017-03-10 回想下最初的计算机设计,在单个CPU的情况下,同一时刻只能由一个线程(在LInux下为进程)占用CPU,且2.6之前的Linux内核并不支持内核抢占,当进程在系统地址运行时,能打断当前操作的只有中断,而中断处理完成后发现之前的状态是在内核,就不触发地调度,只有在返回用户空间时, ...
分类:
系统相关 时间:
2017-04-04 22:12:55
阅读次数:
239
在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这个内核不一定能正确的运行使用glibc的程序",那futex是什么?和glibc又有什么关系呢?1. 什么是FutexFutex 是Fast Userspace muT ...
分类:
其他好文 时间:
2017-04-04 22:06:55
阅读次数:
149