社区
进程/线程/DLL
帖子详情
很奇怪的问题
NewJerryj
2009-08-05 11:22:13
我使用多线程进行搜索,出现一个怪问题,大致代码如下:
DWORD WINAPI SearchThread(LPVOID lpParam)
{
while(true)
{
if(找到目录)
CreateThread(SearchThread..,
lpParam
....); //找到目录,则传递目录参数创建一个新线程继续查找
else if(找到文件)
//get it
else
break;
}
}
为什么每次我都发现创建了两个目录参数一样的新线程,把第一个找到的目录参数丢弃了?
...全文
83
10
打赏
收藏
很奇怪的问题
我使用多线程进行搜索,出现一个怪问题,大致代码如下: DWORD WINAPI SearchThread(LPVOID lpParam) { while(true) { if(找到目录) CreateThread(SearchThread..,lpParam ....); //找到目录,则传递目录参数创建一个新线程继续查找 else if(找到文件) //get it else break; } } 为什么每次我都发现创建了两个目录参数一样的新线程,把第一个找到的目录参数丢弃了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xge
2009-08-05
打赏
举报
回复
[Quote=引用 3 楼 newjerryj 的回复:]
用多线程速度会快些吧,尤其是在现在多核平台下。
引用 2 楼 flyskytoday 的回复:
怎么感觉是用递归创建线程?
即使查找文件夹或文件,只要用一个线程就可以查找了
[/Quote]
所有的线程都在访问同一块硬盘,瓶颈在硬盘,而不是CPU. 多线成访问同一块硬盘只会造成硬盘性能的下降,因为有太多无谓的磁头移动和cache更新。
NewJerryj
2009-08-05
打赏
举报
回复
当新创建的线程搜索任务完成后,会让它自己结束。
[Quote=引用 4 楼 gordon3000 的回复:]
呵呵,2楼问的不是这个事儿。 :)
找到一个目录就创建一个新线程,那得多少啊。
[/Quote]
副组长
2009-08-05
打赏
举报
回复
呵呵,2楼问的不是这个事儿。 :)
找到一个目录就创建一个新线程,那得多少啊。
NewJerryj
2009-08-05
打赏
举报
回复
用多线程速度会快些吧,尤其是在现在多核平台下。
[Quote=引用 2 楼 flyskytoday 的回复:]
怎么感觉是用递归创建线程?
即使查找文件夹或文件,只要用一个线程就可以查找了
[/Quote]
flyskytoday
2009-08-05
打赏
举报
回复
怎么感觉是用递归创建线程?
即使查找文件夹或文件,只要用一个线程就可以查找了
NewJerryj
2009-08-05
打赏
举报
回复
但是如果我在CreateThread() 后,加个Sleep延时一下就正常了
NewJerryj
2009-08-05
打赏
举报
回复
[Quote=引用 9 楼 ltqd2008 的回复:]
CreateThread(SearchThread..,lpParam ....);
创建第一个线程后,这个线程可能还没有读取到 lpParam 所指向的内容便休眠了.
而在第一个线程休眠后,你再次调用CreateThread(SearchThread..,lpParam ....); 创建第二个线程,这时候,lpParam所指向的内容已经变成第二次的内容了,第一个线程这时候再读取lpParam指向的内容也就不正确了
[/Quote]
恩,有道理!
难怪我在创建线程后,加个Sleep,就一切正常了。这样可以让新创建的线程有足够时间去启动读取参数。
ltqd2008
2009-08-05
打赏
举报
回复
CreateThread(SearchThread..,lpParam ....);
创建第一个线程后,这个线程可能还没有读取到 lpParam 所指向的内容便休眠了.
而在第一个线程休眠后,你再次调用CreateThread(SearchThread..,lpParam ....); 创建第二个线程,这时候,lpParam所指向的内容已经变成第二次的内容了,第一个线程这时候再读取lpParam指向的内容也就不正确了
visualthinking
2009-08-05
打赏
举报
回复
线程结束怎样做的,如果来不及结束,有启动一个线程,或许分不到资源
stjay
2009-08-05
打赏
举报
回复
进行IO操作时,最多的线程有时并不显得高效
线程不是这样的分工的
cms-cloud后台管理系统
不建议使用cnpm(可能会出现
奇怪
的
问题
) 部署系统 因为本项目是前后端分离的,所以需要前后端都部署好,才能进行访问 后端部署 bin/package.bat 在项目的目录下执行 然后会在项目下生成 target文件夹包含 war 或jar...
关于UIWebView一个很
奇怪
问题
的另类解决办法(高度递增
问题
)
近来在处理的一个iPad上的app,用到了UIWebView显示广告,广告有竖屏和横屏两种不同的形式。...但多旋转几次,会发现有个
奇怪
的
问题
,广告html会不断被拉伸,高度越来越大。输出log,看到webview中的
linux时间与tomcat时间不一致
今天遇到个很
奇怪
问题
,就是项目部署到linux后,有个任务会定时生成文件,文件名包含了当前时间,但是文件名中的时间与文件生成时间不一致,少了八个小时,如图: 一开始以为是linux系统时间有
问题
,就输入指令...
客户端框架未能加载的
问题
近日,本人利用google map开发浦东学校地图查询系统时,出现很
奇怪
问题
。在本地运行一切正常。但部署到windows2003服务器上就出错。出错情况如下:更
奇怪
的是:用firefox或google浏览器是显示是正常的。原来以为是...
数据库存储的
奇怪
问题
!
但是很
奇怪
????情况是这样的:以前用asp做的东西,为了防止数据库被下载在数据库中开设了asp代码段,防止下载。而且在源文件中放置了on error resume next,所以发现错误时,没有发现任何错误,可以就是不能删除...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章