04 2018 档案

摘要:先举一个有bug的例子: 起初,我想要设置一个事件——g_hStop来通知线程,使得ThreadServer线程能够被主线程停止,但是这里出现了一个问题,如果我刻意让主线程Sleep2秒再去SetEvent,那么等待g_hStop的wait函数就会超时,从而往下继续执行等待Input,而此时主线程已 阅读全文
posted @ 2018-04-27 06:01 _No.47 阅读(302) 评论(0) 推荐(0)
摘要:下面起了两个线程,每个对一个全局变量加500次,不假思索进行回答,会认为最后这个全局变量的值会是1000,然而事实并不是这样: 然而运行多次、每次结果都不同,而且,几乎不会等于1000: 造成这种现象的原因很简单,就是g_nCount在进行自增的时候没有实现原子操作,g_nCount的本质其实是: 阅读全文
posted @ 2018-04-22 09:30 _No.47 阅读(240) 评论(0) 推荐(0)
摘要:其实就是做个实验,看看SetPriorityClass是否真的会生效。 设计思路:主线程一直在进行某种操作(这里是写文件操作),以保证有一定的CPU占用率;生成的子线程来接收你的命令,决定将进程改变为什么级别。 代码逻辑如下: 当启动这个线程和它的副本的时候,二者CPU占用率差不多: 现在调低188 阅读全文
posted @ 2018-04-14 09:06 _No.47 阅读(1068) 评论(0) 推荐(0)
摘要:第一次执行GetQueuedCompletionStatus返回6(JOB_OBJECT_MSG_NEW_PROCESS),表示将一个进程添加进一个作业;第二次执行GetQueuedCompletionStatus返回1(JOB_OBJECT_MSG_END_OF_JOB_TIME),表示作业超时; 阅读全文
posted @ 2018-04-02 04:31 _No.47 阅读(413) 评论(0) 推荐(0)