两种锁的加锁原理互斥锁:线程会从sleep(加锁)——>running(解锁),过程中有上下文的切换,cpu的抢占,信号的发送等开销。自旋锁:线程一直是running(加锁——>解锁),死循环检测锁的标志位,机制不复杂。两种锁的区别互斥锁的起始原始开销要高于自旋锁,但是基本是一劳永逸,临界区持锁时间...
分类:
其他好文 时间:
2014-05-09 04:58:58
阅读次数:
297
随着计算机网络和分布式应用的不断发展,远程消息传递越来越成为应用系统中不可缺少的组成部分。
商业消息中间件的出现保证了消息传输的可靠性,高效率和安全性,同时也减少了系统的开发周期。
目前应用最多的消息中间件产品为IBM MQSeries。
东风生管系统就是通过MQ 通讯的。
本文就针对MQ的基本操作与配置进行详细的阐述,希望对读者有所帮助。
一.MQ基本操作
MQ中有几个很重...
分类:
其他好文 时间:
2014-05-09 01:40:41
阅读次数:
263
下面这个代码用两个双层循环遍历了一个二维数组里所有的元素,以我自己机器的测试
上面那个循环耗时基本为下面的一半,两个循环的时间复杂度相同,为什么会有这么大的差别?首先要明白的是不管是几维数组,他们都是用一块地址连续的内存来存储所有的元素,而内存布局的顺序是一整行接着下一个整行排列,第一个循环是一行一...
分类:
其他好文 时间:
2014-05-08 18:31:26
阅读次数:
289
C语言的指针跳转访问是一个灵活高效的机制,但是再高效也是要花费额外时间的,下面这个程序如果在gcc
-O0不优化的情况,就可以看出指针跳转比直接访问要多消耗10%左右的时间#include #include int main(){ int m = 0; int
*p = &m; ...
分类:
其他好文 时间:
2014-05-08 17:58:42
阅读次数:
278
一、流的概念和作用。
流是一种有顺序的,有起点和终点的字节集合,是对数据传输的总成或抽象。即数据在两设备之间的传输称之为流,流的本质是数据传输,根据数据传输的特性讲流抽象为各种类,方便更直观的进行数据操作。
二、IO流的分类。
根据数据处理类的不同分为:字符流和字节流。
根据数据流向不同分为:输入流和输出流。
三、字符流和字节流。
字符流的由来:因为数据编码的不同,而有了对字符进行高效...
分类:
编程语言 时间:
2014-05-08 17:19:38
阅读次数:
510
通过这一章的内容,希望能够让大家明白一个道理,“数据库系统的性能不是优化出来的,更多的是设计出来的”。数据库Schema
的设计并不如很多人想象的那样只是一个简单的对象对应实现,而是一个系统工程。要想设计出一个既性能高效又足够满足业务需求,既逻辑清晰又关系简单的数据库Schema
结构,不仅仅需.....
分类:
数据库 时间:
2014-05-08 15:06:37
阅读次数:
315
对于一个程序员来说,学习的重要性相信大家都能意识得到。如何才能有效地学习,高效地学习?探讨下这个问题,我认为很有必要。每个人学习的方
法和习惯可能都不尽相同,很多人习惯了在学校的学习方式,特别是很多刚出校门的人。在他们潜意识中,学习只是应付考试的一种手段,考完就一切OK了,全部
还给老师了也无所谓,...
分类:
其他好文 时间:
2014-05-08 14:50:35
阅读次数:
281
输入输出流一般都是用缓冲的,也就是说不是每次你要它读/写一个或少数几个字节,他就立马执行的,而是将这些请求放入缓冲,积累到一定量的时候才一起执行,以提高效率。
flush的作用就是强制将缓冲区里的东西立刻执行然后清空,不管里面有多少东西...
分类:
其他好文 时间:
2014-05-08 11:00:17
阅读次数:
280
在之前文章(如何使用思维导图更高效的设计测试用例?)提到了使用正则表达式帮助我们测试,这里就简单介绍下,只是说出我的经验而已,也请看到文章的朋友多指正~在软件系统中,很多地方都会用到正则表达式,对于这种功能的测试,其实更多的就是测试其正则表达式的有效性,以下就我的经验列出了几个场景以及介绍下如何快速...
分类:
其他好文 时间:
2014-05-08 08:49:04
阅读次数:
203
接着我们前几篇搭建公有云的文章,我们实现了基本的网络架构和通信,主要解决了租户方面的网络问题,那么这么多租户的虚拟机,存放在哪呢?那么很自然地就涉及到存储的问题,我们如何给租户去提供一个高可用的,且高效的存储方式,那么就有了我们今天的这个Demo,基于SMB3.0做..
分类:
其他好文 时间:
2014-05-08 02:40:42
阅读次数:
473