COM,为什么我读不懂你的心
来源:互联网 发布:uu淘宝店叫什么 编辑:程序博客网 时间:2024/05/01 02:43
又遇到郁闷的事情:
有一个线程,入口大致如下:
th_main()
{
while(conditon)
svc();
}
struct ComPair
{
ComPair(){ ::CoInitializeEx(0, COINIT_MULTITHREADED);}
~ComPair(){::CoUninitialize();}
};
svc()
{
ComPair com_pair_;
....这里,ADO数据库操作。
}
现象:
DEBug后,看到,ADO部分,创建第一个对象(Connnection)时,出现3个线程,::CoUninitialize()后,还剩一个。重复进入,再次多3个线程,退出,少两个。最要命的是,当线程多了以后(10几个左右,)线程增减开始无规律了。也可能下降的。
ADO肯定是有内存池的,据说也是有连接池的,但是不清楚。
据MSDN文档,这个问题似乎不是ADO的问题,而是COM的问题。COM大量使用消息循环、TLS,导致线程模型至关重要。我真是欲哭无泪啊!
本来,COM只是个二进制调用标准而已,为什么要搞得这么复杂?特别是进程内COM调用,本来是极其简单的道理,搞得象穿越地雷阵一样。
主线程用ADO到是从没什么问题,一旦要复杂一点,立刻问题多多。MS的API好像一贯如此啊。线程问题本来交给程序员做,是很简单的事情,非要自己处理,搞的接口一团糟,谁能从ADO文档中看出线程处理的问题来?这也太隐晦了吧!
再联想到COM指针不能直接跨线程传递的问题,也是一样的恶心:现象是导致内存泄漏!就算崩溃都比这让人舒心一点!
再次BS微软!
有一个线程,入口大致如下:
th_main()
{
while(conditon)
svc();
}
struct ComPair
{
ComPair(){ ::CoInitializeEx(0, COINIT_MULTITHREADED);}
~ComPair(){::CoUninitialize();}
};
svc()
{
ComPair com_pair_;
....这里,ADO数据库操作。
}
现象:
DEBug后,看到,ADO部分,创建第一个对象(Connnection)时,出现3个线程,::CoUninitialize()后,还剩一个。重复进入,再次多3个线程,退出,少两个。最要命的是,当线程多了以后(10几个左右,)线程增减开始无规律了。也可能下降的。
ADO肯定是有内存池的,据说也是有连接池的,但是不清楚。
据MSDN文档,这个问题似乎不是ADO的问题,而是COM的问题。COM大量使用消息循环、TLS,导致线程模型至关重要。我真是欲哭无泪啊!
本来,COM只是个二进制调用标准而已,为什么要搞得这么复杂?特别是进程内COM调用,本来是极其简单的道理,搞得象穿越地雷阵一样。
主线程用ADO到是从没什么问题,一旦要复杂一点,立刻问题多多。MS的API好像一贯如此啊。线程问题本来交给程序员做,是很简单的事情,非要自己处理,搞的接口一团糟,谁能从ADO文档中看出线程处理的问题来?这也太隐晦了吧!
再联想到COM指针不能直接跨线程传递的问题,也是一样的恶心:现象是导致内存泄漏!就算崩溃都比这让人舒心一点!
再次BS微软!
- COM,为什么我读不懂你的心
- 其实你不懂我的心
- 我的伤 你不懂
- 不要问我为什么这么nise你不懂我的世界
- sizeof有话说:“其实你不懂我的心”
- 你的柔情我永远不懂--陈琳
- 你说的我不懂
- [转]其实你不懂wget的心 http://www.cnblogs.com/cbscan/articles/2276817.html
- 你懂?你不懂——>我的学习环境
- 你不是真正的快乐,你却不懂我
- 我能说我不懂你的后卫吗?
- 你不懂我 我不怪你
- 你不懂我,我不怪你
- 8.4,七年了,我还是不懂你的心……傅立叶变换。
- 身在国外,我的辛酸苦辣你不懂!
- 其实你不懂wget的心
- 我是你读不懂的码农
- 我不懂的地方
- 一维数组的使用
- eclipse用法小记(从别人那里拷贝过来)
- ASP_80004005|Operation_must_use_an_updateable_query
- C/C++解释脚本语言Ch
- JAVA代码编写的30条建议【转载】- -
- COM,为什么我读不懂你的心
- Java正则表达式详解
- alexa 排名查询 webservice
- 面向 Java 开发人员的 Ajax: 结合 Direct Web Remoting 使用 Ajax
- 毕业生值的看的文章:“HR之声:360万毕业生,拿什么拯救自己? ”
- Global LB
- 记录C#的点滴
- aix5.2下安装weblogic
- 智者当道 05年智能手机回眸及06年前瞻导购