鱼C论坛

 找回密码
 立即注册
查看: 2452|回复: 8

一个关于多线程函数的问题

[复制链接]
发表于 2013-12-18 16:00:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
现在我在学用多线程,我见到了三个多线程函数:
CreateThread()
_beginthread()
AfxCreateThread()
这三个函数到底怎么用,哪个更好?《windows核心编程》上说用_begintheread(),可是我见别人程序里都用的AfxCreateThread(),而且听说CreateThread()会导致内存泄露,但又有人说这个问题在windows98中就解决了,我到底该用哪个》怎么用?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-23 10:33:07 | 显示全部楼层
支持鱼C,顶一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-23 14:13:59 | 显示全部楼层
兄弟。。你第三个是不是写错了?是不是AfxBeginThread()啊。。。。如果是的话,那就他吧。第二个我没用过,我一般用1和3.
AfxBeginThread:当你继承CWinThread类生成自己新的线程类时,你应该使用AfxBeginThread来创建线程,该函数会返回一个线程句柄,你可以利用该句柄给线程发送消息,或者调用新线程类的函数。使用AfxBeginThread创建的线程,他可以在自己的内部形成一个线程体系。就像创造一个人一样,可以拥有自己的内部循环,而且可以接受来自外部的消息。
CreateThread:这个是通常情况下的创建方法,也就是基本的创建方法。他需要指定线程函数,也就是线程体。线程体是一个内部封闭的结构,除了又开始传递的参数外并没有自带的接受外部消息的功能。不过可以利用全局变量来控制线程函数,但有时会出现共享问题,会很麻烦,需要声明临界区。这个需要在网上查阅详细资料,这个是针对多线程的。如果单线程不必考虑。
至于第二个。。我也没有用过。你到百度上查吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-27 22:05:06 | 显示全部楼层

谢谢,不过这个好像是mfc的东西,我还是用CreateThread把
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-27 22:12:18 | 显示全部楼层
不要用CreateThread()。如果用了,在此线程函数中又使用了标准C库,就会出问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-28 13:58:41 | 显示全部楼层
仰望天上的光 发表于 2013-12-27 22:12
不要用CreateThread()。如果用了,在此线程函数中又使用了标准C库,就会出问题。

在c++控制台用哪个好?api呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-28 21:16:33 | 显示全部楼层
隐袭战龙 发表于 2013-12-28 13:58
在c++控制台用哪个好?api呢?

_beginthread()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-28 21:39:35 | 显示全部楼层
本帖最后由 编程难 于 2013-12-28 21:41 编辑

拜托,再好好看看《核心编程》,上面说的是用_beginthreadex而不是_beginthread。具体原因核心编程上已经说的很清楚了。

至于AfxBeginThread是mfc里的,若是在mfc中编程,尽量用AfxBeginThread。可以自行查找相关资料。

总之,可以使用AfxCreateThread()或者_beginthreadex,另外两个不推荐使用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-29 09:29:05 | 显示全部楼层
编程难 发表于 2013-12-28 21:39
拜托,再好好看看《核心编程》,上面说的是用_beginthreadex而不是_beginthread。具体原因核心编程上已经说 ...

好吧,我承认我打错了很多字,谢谢你的帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 00:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表