02 2013 档案

摘要:Mutex:互斥体对象。互斥的范围:多进程范围内的互斥,也可以用于同进程多线程的同步,如果应用场景是同一进程类的互斥,Mutex就没有使用的必要了,使用Lock或Monitor应该是比较好的选择。因为Mutex的获取与生成比Lock或Monitor慢了不至一个数量级。本地Mutex:如果在构造Mutex对象时不传递命名参数,则会构造本地Mutex,本地Mutex用于同进程内的多线程同步.系统Mutex:构造Mutex必须传递命名,系统Mutex用于多进程中的同步。代码如下:using System;using System.Collections.Generic;using System.Li 阅读全文
posted @ 2013-02-21 17:48 b0b0 阅读(1527) 评论(2) 推荐(1)
摘要:在多线程程序中经常会碰到线程同步:场景1主线程启动多个子线程后,主线程需要等待所有的子线程执行完毕后,主线程才能进一步向下执行。C# 提供了 ManualResetEvent 类为我们的线程同步提供了方便.ManualResetEvent.WaitAll(new WaitHandle[] { });WaitAll静态方法提供了阻塞当前线程的执行,直到WaitHandle[]中的每个线程发送了阻塞解除的信号,当前线程才会继续执行。可以通过将布尔值传递给构造函数来控制 ManualResetEvent 的初始状态,如果初始状态处于终止状态,为 true;否则为 false。ManualResetE 阅读全文
posted @ 2013-02-20 17:45 b0b0 阅读(1050) 评论(0) 推荐(0)
摘要:局部性原理: CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。计算机存储结构内存,一级缓存,二级缓存,寄存器等。缓存是用来存放从内存中取出的指令和数据,用来提高cpu访问内存的速度 而寄存器是用来存放cpu在执行指令时所需要的操作数或执行结果寄存器的内容可以通过编程控制,也就是说对程序员而言是可见的,而缓存不能通过编程控制,对程序员而言是透明的。缓存的访问速度是远远快于内存的,计算机执行运算时总是把用到内存的相关的数据放到缓存中以便于下次用到时直接读取缓存数据,缓存只能存放小部分数据,而且缓存的数据也不可能百分百命中,如果缓存不命中,那么CP. 阅读全文
posted @ 2013-02-20 17:43 b0b0 阅读(1505) 评论(0) 推荐(1)
摘要:本文说明已知其它进程变量所在地址,如何读取此进程变量地址所保存的信息Win32ReadMemTest的代码如下#include "stdafx.h"#include "windows.h"int add(int a,int b);typedef int (*func)(int,int);int _tmain(int argc, _TCHAR* argv[]){ DWORD number=10000; DWORD *ptr=&number; func myfunc=NULL; myfunc=add; printf("%p: %d\n&qu 阅读全文
posted @ 2013-02-06 17:18 b0b0 阅读(1481) 评论(0) 推荐(1)
摘要:本文用来说明c 调用 win32 IO函数,获取当前路径,获取当前模块所在的目录,以及递归输出某个目录的文件与文件夹方法。代码如下:/************************************************************FileName: direcory operateVersion :Date:2013.01.30Description: //本模块用来说明win32 目录操作函数的用法<author>hbb0b0@163.com</author>******************************************* 阅读全文
posted @ 2013-02-01 11:58 b0b0 阅读(627) 评论(0) 推荐(0)