软件技术
zhiquan
业精于勤荒于嬉,行成于思而毁于随
展开
-
转载:异步IO、APC、IO完成端口、线程池与高性能服务器之一 异步IO
背景:轮询 PIO DMA 中断 早期IO设备的速度与CPU相比,还不是太悬殊。CPU定时轮询一遍IO设备,看看有无处理要求,有则加以处理,完成后返回继续工作。至今,软盘驱动器还保留着这种轮询工作方式。 随着CPU性能的迅速提高,这种效率低下的工作方式浪费了大量的CPU时间。因此,中断工作方式开始成为普遍采用的技术。这种技术使得IO设备在需要得到服务时,能够产生一个硬件中断,迫使C转载 2009-06-03 21:27:00 · 564 阅读 · 0 评论 -
MFC处理excel的有用的小函数
<br />1、求excel列号函数 col 值为1-无穷大<br />CString ConvertToLetter( int col )<br />{<br /> col -= 1;<br /> int nRemainder = col%26;<br /> int nMultiple = col/26;<br /> <br /> CString str;<br /> str.Format( _T("%c"), 65+nRemainder );<br /> <br />原创 2010-11-05 15:52:00 · 1087 阅读 · 0 评论 -
内聚和耦合
内聚(Cohesion)是一个模块内部各成分之间相关联程度的度量。耦合(Coupling)是模块之间依赖程度的度量。内聚和耦合是密切相关的,与其它模块存在强耦合的模块通常意味着弱内聚,而强内聚的模块通常意味着与其它模块之间存在弱耦合。模块设计追求强内聚,弱耦合。 一、内聚强度内聚按强度从低到高有以下几种类型:(1) 偶然内聚。如果一个模块的各成分之间毫无关系,则称为偶然内聚。(2) 逻辑内原创 2009-06-09 16:46:00 · 15621 阅读 · 2 评论 -
单例模式(Singleton)
一、什么是单例模式: 单例模式确保某一个类只有一个实例,而且向这个系统提供这个实例。 二、单例模式的要点: 1、某个类只能有一个实例 2、它必须自行创建这个实例 3、必须自行向这个系统提供这个实例 三、单例模式的结构及实现: 1、饿汉式单例类: 类图: 代码: public class EagerSingleton { private static final EagerS转载 2009-06-08 11:11:00 · 589 阅读 · 0 评论 -
线程中CreateEvent和SetEvent及WaitForSingleObject的用法
线程中CreateEvent和SetEvent及WaitForSingleObject的用法首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面.CreateEvent 函功能描述:创建或打开一个命名的或无名的事件对象.EVENT有两种状态:发信号,不发信号。 SetEvent/ResetEvent分别将EVENT置为这两种状态分别是发信号转载 2009-06-05 15:31:00 · 810 阅读 · 0 评论 -
C#多线程
线程是程序中独立的指令流。C#中线程是使用Thread类来处理的,该类在System.Threading命名空间中。一个Thread实例标识一个线程,即执行序列。实例化一个Thread对象,就可以创建另一个线程。示例:void ChangeColorDepth(){ //processing to change color depth of image}//ent原创 2009-06-05 11:03:00 · 515 阅读 · 0 评论 -
VC中使用系统提供的线程池(Thread Pooling)
在项目里经常用到多线程,大量的客户向服务器提出请求,这时需要开辟线程来响应客户请求,由于客户量是不可预知的,难道来一个客户请求就新开个线程来响应吗?答案是否定的,要知道开辟和撤消线程是需要耗费相当多时间和资源的,于是前辈们弄出了很多模型出来解决这种问题,其中使用线程池(Thread Pooling)是个很好的主意。线程池在Windows2000及其以后版本得到了很好的支持。使用系统提供的线程池机制转载 2009-06-03 22:35:00 · 1476 阅读 · 0 评论 -
转载:关于DPC和APC
当驱动程序处理IRP的时候,它可能立刻完成,也可能在中断里才能完成,比如说,往硬件设备发出一个请求(通常可以是写I/O port),当设备完成操作的时候会触发一个中断,然后在中断处理函数里得到操作结果。Windows有两类中断,硬件设备的中断和软中断,分成若干个不 同的优先级(IRQL)。软中断主要有两种:DPC(Delayed Procedure Call)和APC(Asyn转载 2009-06-03 21:47:00 · 5585 阅读 · 0 评论 -
vc如何创建 线程池
有许多应用程序创建的线程花费了大量时间在睡眠状态来等待事件的发生。还有一些线程进入睡眠状态后定期被唤醒以轮询工作方式来改变或者更新状态信息。线程池可以让你更有效地使用线程,它为你的应用程序提供一个由系统管理的工作者线程池。至少会有一个线程来监听放到线程池的所有等待操作,当等待操作完成后,线程池中将会有一个工作者线程来执行相应的回调函数。 你也可以把没有等待操作的工作项目放到线程池中,用Queu转载 2009-06-03 21:32:00 · 700 阅读 · 0 评论 -
windows下的NTP服务
windows下的NTP服务近期的项目用到NTP,在使用的时候碰到一些问题,特记录如下:(1)NTP Server部分若要将内部时间服务器配置为与外部时间源同步,请按照下列步骤操作: 1. 将服务器类型更改为 NTP。为此,请按照下列步骤操作: a. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。 b. 找转载 2012-11-01 15:41:54 · 957 阅读 · 0 评论