自旋锁和互斥锁是多线程编程中的两个重要概念。他们都能用来锁定一些共享资源,以阻止影响数据一致性的并发访问。但是他们之间确实存在区别,那么这些区别是什么?
1 理论
理论上,当一个线程试图获取一个被锁定的互斥锁时,该操作会失败然后该线程会进入睡眠,这样就能马上让另一个线程运行。当持有互斥锁的线程释放该锁之后,进入睡眠状态的线程就会被唤醒。但是,当一个线程试图获取一个自旋锁而没有成功时,该线...
分类:
其他好文 时间:
2014-04-29 13:31:21
阅读次数:
317
在windows下运行VMware创建的虚拟机时出错,无法运行。
错误提示大概为:
Failed to lock the file
Cannot open the disk 'D:\Windows Server 2008 R2 x64.vmdk' or one of the snapshot disks it depends on.
解决方法:
把虚拟机文件夹里【.lck】...
分类:
其他好文 时间:
2014-04-29 13:28:21
阅读次数:
366
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。
最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。
1.
计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。
2.
假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。...
分类:
编程语言 时间:
2014-04-29 13:17:20
阅读次数:
276
习惯了用apache后,当第一次用nginx时,把原来的项目(thinkphp框架)部署在新服务器上的时候,惊呆了!
所有的URL模式下都不能正常运行,甚至连css,js文件都不能正常加载。
原因是ngibx不支持pathinfo
主要是需要配置nginx
location / {
root D:/wnmp/www;
index ind...
分类:
Web程序 时间:
2014-04-29 13:11:20
阅读次数:
680
6.2.1 作用域和命名空间实例
下面的实例主要用来示范如何引用不同的作用域和命名空间,关键字global和nonlocalru如何影响变量绑定。
实例运行结果是:
After local assignment: test spam
After nonlocal assignment: nonlocal spam
After global assignment: no...
分类:
编程语言 时间:
2014-04-28 10:46:42
阅读次数:
356
paip.性能跟踪profile原理与架构与本质-- python扫带java php
##背景
弄个个输入法音标转换atiEnPH工具,老是python性能不的上K,7k记录浏览过k要30分钟了.
##目标
分析一个程序的性能,最终都归结为回答4个基本的问题:
程序运行速度有多快?
运行速度瓶颈在哪儿?
程序使用了多少内存?
内存泄露...
分类:
编程语言 时间:
2014-04-28 10:46:41
阅读次数:
334
出现“CHECK_NRPE: Error - Could not complete SSL handshake.”的错误。
问题解决的步骤:
1. 确保openssh , openssl, openssl-devel版本一致。
在centOS 上,可以运行:
yum install openssl openssl-devel
2. nagios监控端的允许地址和...
分类:
其他好文 时间:
2014-04-27 22:18:19
阅读次数:
988
Java 内存分配
一个完整的Java程序运行过程会涉及以下内存区域:
l 寄存器:JVM内部虚拟寄存器,存取速度非常快,程序不可控制。
l 栈:保存局部变量的值,包括:1.用来保存基本数据类型的值;2.保存类的实例,即堆区对象的引用(指针)。也可以用来保存加载方法时的帧。
l 堆:用来存放动态产生的数据,比如new出来的对象。注意创建出来的对象只包含属于各自的成员变量,并不包括成员方法。...
分类:
编程语言 时间:
2014-04-27 22:13:18
阅读次数:
349
javafx8发布有一段时间了,今天闲来看看。
1.javafx8内嵌为java API,与JDK一起打包,javafx运行环境被加入了jre中。
2.FXML与SceneBuilder: FXML是以XML为基础的UI界面描述文件,用于构造XUI形式的界面,与android颇为相似。
SceneBuilder是一种可视化拖拽的FXML生成器,以可视化方式设计UI界面
3.WebView:...
分类:
编程语言 时间:
2014-04-27 22:12:35
阅读次数:
355
本文将基于hbase 0.98.1讲解其在linux集群上的安装方法,并对一些重要的设置项进行解释,本文原文链接:,转载请注明出处!1. 安装与配置1.1. 前置条件确保已经安装了hadoop并保证hadoop运行正常。关于hbase与hadoop的版本依赖关系,请参考: https://hbase.apache.org/book/configuration.html#hadoop 关于java...
分类:
其他好文 时间:
2014-04-27 21:33:59
阅读次数:
462