随笔分类 - 多线程编程
摘要:最近研究了一下完成端口,看了一篇奇文http://blog.csdn.net/piggyxp/article/details/6922277 , 在仔细研读之后,调试了代码。或许是我资历尚浅,发现自己对作者的意图的理解仍然欠缺。所以经过反复思考,终于有所斩获。这里就写一篇文章来补充一下作者的意思。1. 完成端口的实质个人感觉完成端口就是一个“闹钟”,它可以被当做任何事情的提醒设备。比如说,(没有试过)ReadFile可以异步操作,可以将这个异步操作的完成这个事件的提醒交给完成端口来完成。所以,原文中所使用的完成端口,只是将这个“闹钟”用在了网络传输的提醒上。这也就说明了,尽管我们可以使用完成端
阅读全文
摘要:转自 http://www.cppblog.com/gohan/archive/2007/02/16/18822.htmlSomeone recently asked me what I recommend for synchronizing worker threads and I suggested setting an event. This person's response was th...
阅读全文
摘要:内核对象定义,通知和未通知状态,副作用,常用内核对象的介绍
阅读全文
摘要:本文介绍线程从被创建到调度再到消亡的具体过程
阅读全文
摘要:线程用户级同步有多种方法,包括了互锁和关键区等。这里将重点介绍如何使用关键区的方法来实现线程在线程级的同步。1.对关键区的使用[代码]2. 注意点:(1)关键区域只是对资源的锁住,并不是说锁住其它的线程。具体来说,当线程1用到了资源a,并且使用了关键区域,在它得到许可进入到关键区域中后,他仍然存在几率被置换出可调用线程,进入等待线程,这是如果线程2运行到了有相同关键区域变量的EnterCritic...
阅读全文
摘要:1.线程的创建线程的创建有多种方式,不过例如CreateThread之类的API不宜使用,因为C++ 运行库里面有一些函数使用了全局量,如果使用 CreateThread 的情况下使用这些C++ 运行库的函数,就会出现不安全的问题。而 _beginthreadex 为这些全局变量做了处理,使得每个线程都有一份独立的“全局”量。所以“绝对不要调用系统自带的Crea...
阅读全文
摘要:线程定义,内存空间,线程和消息循环之间的关系
阅读全文