摘要:
既出此言,我必须先解释一下鬼才这个词,什么样的人是鬼才。鬼才的基本素质:内心坚韧,有种锲而不舍的精神;无需“绝顶聪明”--因为此只会令一个人恃才放旷;懂得审时度势,做事极有分寸。借用司马懿对曹丕的点评:“雕章琢句算什么,懂得审时度势相机行事乃更高境界,而达到此境界的公子还装作一无所知,善于韬悔藏拙,那么对这样的公子只有两个字的的评价--潜龙”。而这些... 阅读全文
摘要:
一两种方式创建,一种为自动重置,在其他线程使用WaitForSingleObject等待到事件对象变为有信号后该事件对象自动又变为无信号状态,一种为人工重置在其他线程使用WaitForSingleObject等待到事件对象变为有信号后该事件对象状态不变。例如有多个线程都在等待一个线程运行结束,我们就可以使用人工重置事件,在被等待的线程结束时设置该事件为有信号状态,这样其他的多个线程对该事件的等待都会成功(因为该事件的状态不会被自动重置)。事件相关的API如下:创建事件对象:HANDLECreateEvent(LPSECURITY_ATTRIBUTESlpEventAttributes,//安全 阅读全文
摘要:
现在我们回过头来讲WaitForSingleObject这个函数,从前面的例子中我们看到WaitForSingleObject这个函数将等待一个对象变为有信号状态,那么具有信号状态的对象有哪些呢?下面是一部分:MutexEventSemaphoreJobProcessThreadWaitabletimerConsoleinput互斥量(Mutex),信号灯(Semaphore),事件(Event)都可以被跨越进程使用来进行同步数据操作,而其他的对象与数据同步操作无关,但对于进程和线程来讲,如果进程和线程在运行状态则为无信号状态,在退出后为有信号状态。所以我们可以使用WaitForSingleO 阅读全文
摘要:
由于进程/线程间的操作是并行进行的,所以就产生了一个数据的问题同步,我们先看一段代码:intiCounter=0;//全局变量DOWRDthreadA(void*pD){for(inti=0;im_hThread;hThread[1]=pT2->m_hThread;hThread[2]=pT3->m_hThread;//等待线程结束//至于WaitForMultipleObjects的用法后面会讲到。WaitForMultipleObjects(3,hThread,TRUE,INFINITE);//删除临界区DeleteCriticalSection(&criCounter 阅读全文
摘要:
等待线程 1。使用pthread_cond_wait前要先加锁 2。pthread_cond_wait内部会解锁,然后等待条件变量被其它线程激活 3。pthread_cond_wait被激活后会再自动加锁激活线程: 1。加锁(和等待线程用同一个锁) 2。pthread_cond_signal发送信号 3。解锁 激活线程的上面三个操作在运行时间上都在等待线程的pthread_cond_wait函数内部。 程序示例: #include #include #include pthread_mutex_t count_lock; pthread_cond_t count_nonz... 阅读全文
摘要:
互斥锁和条件变量是出自Posix线程标准,用来同步一个进程中各个线程的,同时也可以用来同步几个进程间的,不过这需要此互斥锁和条件变量是存放在多个进程间共享的某个内存区的。互斥锁上锁与解锁: #include int pthread_mutex_lock(pthread_mutex_t *mutex); int pthread_mutex_trylock(pthread_mutex_t *mutex); int pthread_mutex_unlock(pthread_mutex_t *mutex);互斥锁初始化的问题:可以通过两种方式初始化一个互斥锁变量:1,如果互斥锁变量是... 阅读全文
摘要:
用GDB调试程序HomeAcademicComputingGNU NotesDSEC ServerWild JournalPhotos说明从CSDN的网站上找到的GDB使用说明。原文标题:用GDB调试程序作者:haoel (QQ是:753640,MSN是: haoel@hotmail.com)关键字:gdb 调试 c c++ gun这篇文章非常好,所以转载了下来,作为收藏。topGDB概述GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、B 阅读全文
摘要:
”引用别人的文章“0.1 关于程序的编译和链接 在此,我想多说关于程序编译的一些规范和方法,一般来说,无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。 编译时,编译器需要的是语法的正确,函数与变量的声明的正确。对于后者,通常是你需要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++文件中),只要所有的语法正确,编译器就可以编译出中间目标文件。一般 阅读全文
摘要:
每一个规范的web应用在WEB-INF目录下都应该有一个web.xml配置文件,用来对web应用的属性进行配置。web.xml配置文件包含的内容很多,但是基本的配置应该包括如下几部分:环境参数初始化Servlet配置过滤器配置监听器配置JNDI配置Session配置JSP网页相关配置MIME TYPE配置welcome文件清单错误处理根元素和头因为该配置文件是一个xml文档,因此必须遵循xml的书... 阅读全文
摘要:
资源利用情况和执行次数 Wall clock time (墙上时钟时间) 流逝的时间 User CPU time (用户CPU时间) 进程花在执行用户模式(非内核模式)代码上的时间总量 System CPU time (系统CPU时间) 花在执行内核代码上的时间总量 通过调用times 或 getrusage 可以获得这信息, 前者能给出细致时间,后者可以给出更多信息,进程的利用情况, 比如它的... 阅读全文