看Craig, Landin, and Hagersten发明的CLH锁如何优化同步带来的花销,其核心思想是:通过一定手段将所有线程对某一共享变量轮询竞争转化为一个线程队列且队列中的线程各自轮询自己的本地变量。这个转化过程由两个要点,一是构建怎样的队列&如何构建队列,为了保证公平性,构建的将是一个FIFO队列,构建的时候主要通过移动尾部节点tail实现队列的排队,每个想获取锁的线程创建一个新节点并...
分类:
编程语言 时间:
2014-12-21 22:11:38
阅读次数:
470
题目大意:有两个人玩游戏,有两堆石子,每次一个人要从其中一堆石子中拿走一些石子,当出现有一对石子变成0的时候这个人就输了,另一个人就赢了。给出初始石子有多少,问谁能赢。
思路:基础的组合游戏的判定问题,这个题没有给数据范围,非常的坑爹,据说需要long long。
第一次做组合游戏的题目,想想还有些小激动呢。昨天听同学讲了讲,我来现学现卖一下:
由于组合游戏的公平性,那么:如果一个状...
分类:
其他好文 时间:
2014-11-21 10:43:42
阅读次数:
207
在聊聊高并发(九)实现几种自旋锁(四)中实现的限时队列锁是一个基于链表的限时无界队列锁,它的tryLock方法支持限时操作和中断操作,无饥饿,保证了先来先服务的公平性,在多个共享状态上自旋,是低争用的。但是它的一个缺点是牺牲了空间,为了让线程可以多次使用锁,每次Lock的时候都要new
QNode,并设置给线程,而不能重复使用原来的节点。
这篇说说限时有界队列锁,它采用了有界队列,并...
分类:
其他好文 时间:
2014-10-30 13:40:35
阅读次数:
342
我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这 些依然没有JDK自带的功能使用起来方便。而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、 notify()和synchronized等,每每需要考虑性能、死锁、公平性、资源管理以及如何避免线程安全性方面带...
分类:
其他好文 时间:
2014-08-21 15:03:34
阅读次数:
272
http://blog.csdn.net/aesop_wubo/article/details/7533186
CLH锁即Craig, Landin, and Hagersten (CLH) locks,CLH锁是一个自旋锁,能确保无饥饿性,提供先来先服务的公平性。
CLH锁也是一种基于链表的可扩展、高性能、公平的自旋锁,申请线程只在本地变量上自旋,它不断轮询前驱的状态...
分类:
其他好文 时间:
2014-06-15 18:21:38
阅读次数:
265
A - 爱管闲事
春希非常爱管闲事,他每天都会抽空帮助一些同学,由于春希非常死板,出于公平性,春希不会先帮助后来找他的同学。
现在有n个同学需要他的帮助,虽然他很想一天之类帮助所有人,但毕竟精力有限,于是他决定分m天来帮助他们。
根据事情的重要性,春希帮助不同同学会有不同的快乐值,而春希获得的总的快乐值为每天获得的快乐值的乘积。
现在给出n和m,以及帮助完各同学时获得的快乐值,...
分类:
其他好文 时间:
2014-06-05 10:21:52
阅读次数:
304
atitit.常用编程语言的性能比较 c c++ java
选择一个什么样的程序问题进行这样的测试呢?这是一个很关键的问题,也最容易影响测试的公平性。另外的,对于每种语言,各自的优势都是不同的
#----性能测试标准
首先的,我们的选题中要使用的各种程序语言的最常用的要素。(、数组操作、循环、判断等。)
对IO的操作也是编程语言重要的内容。
其次的,操作时间一定要长,否则,对于...
分类:
编程语言 时间:
2014-05-13 09:09:42
阅读次数:
313