大概的整个过程是:
调用await的线程都会进入一个Condition队列。调用signal的线程每一次都会从firstWaiter开始找出未取消的Condition Node放到release队列里,然后调用signal的线程在await或者unlock的时候执行release方法才有机会将其解除阻塞。相对于lock-unlock,正常的流程要简单一些,但是对于中断处理会更为复杂。...
分类:
其他好文 时间:
2014-12-12 16:42:16
阅读次数:
196
最近在访问一些网站时,经常页面闪现一下,然后就被重定向到一个丑陋异常的页面,显示:
“尊敬的用户:您访问的域名有误或网页不存在,您可以使用我们提供的以下服务”
具体如下图:
打开Chrome的开发者工具,查看Nerwork Log(勾上Preserver Log复选框),找到当前页面的启动器(initiator),发现是来自
http://www.facebook.co...
分类:
其他好文 时间:
2014-12-12 16:41:54
阅读次数:
153
在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制。...
分类:
其他好文 时间:
2014-12-12 16:39:40
阅读次数:
203
Linux 驱动模型初探2——device_driver
1,思考
device_driver也是一个kobject?,但你注意没有,在sys/目录下有bus/,有device/就是没有device_driver/,Y?为什么这么设计?
先看struct devic_driver;
struct device_driver {
co...
分类:
系统相关 时间:
2014-12-12 13:21:36
阅读次数:
315
/// /// 数据备份 /// /// public bool DataBackup(string getpath) { try { SqlConnection con = new SqlConnection();//利用代码实现连接数据库 con.ConnectionString = Co...
分类:
数据库 时间:
2014-12-12 11:29:00
阅读次数:
322
maya文件.mb是可以直接拖入unity里的。 maya曲线模型不能在unity显示,unity不支持NURBS结构,换成polygon则无事。 NURBS转成polygon方法是: 1.先选中物体,在window-outliner,打开大纲列表,点击物体名字, 2.modify-co...
分类:
编程语言 时间:
2014-12-12 11:22:55
阅读次数:
540
在jdk1.5之前,多线程之间的同步是依靠synchronized来实现。synchronized是java的关键字,直接由jvm解释成为指令进行线程同步管理。因为操作简单,而且现在jdk的后续版本已经对synchronized进行了很多的优化,所以一直是大家编写多线程程序常用的同步工具。那为什么要推出新的同步api呢?jdk1.5发布的时候,synchronized性能并不好,这可能是concurrent包出现的一个潜在原因,但是更重要的是新的api提供了更灵活,更细粒度的同步操作,以满足不同的需求。但是...
分类:
其他好文 时间:
2014-12-11 22:30:54
阅读次数:
391
大体参考的这里,非常感谢他的例子开发的时候先下载好cowboy的库,放到~/.erlang里面code:add_pathz("/Users/mmc/erlang/3rd_libs/cowboy/ebin/").code:add_pathz("/Users/mmc/erlang/3rd_libs/co...
分类:
其他好文 时间:
2014-12-11 22:09:00
阅读次数:
256
Open the Lock
Description
Now an emergent task for you is to open a password lock. The password is consisted of four digits. Each digit is numbered from 1 to 9.
Each time, you can add or m...
分类:
其他好文 时间:
2014-12-11 20:54:48
阅读次数:
446
[转]直接上代码import base64fin = open(r"D:\2.zip", "rb")fout = open(r"D:\2.x.txt", "w")base64.encode(fin, fout)fin.close()fout.close()fin = open(r"D:\2.x.tx...
分类:
编程语言 时间:
2014-12-11 15:46:02
阅读次数:
212