CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

关 于 CGI 下 的 多 线 程 UP有分!!!

楼主sunyt(sunyt)2003-08-04 20:39:52 在 C/C++ / C语言 提问

请问各位高手CGI下是否可以用多线程    
  由于有大量分布的数据需要检索   因此想通过多线程来查询   这样可以提高速度    
  代码如下:  
   
  hThread[i]   =   CreateThread(    
                  NULL,                                                 //   default   security   attributes    
                  0,                                                       //   use   default   stack   size      
                  ThreadOTSearch,                                     //   thread   function    
                  &thcs[i],                                 //   argument   to   thread   function    
          CREATE_SUSPENDED,  
                  &dwThreadId);                                 //   returns   the   thread   identifier    
   
  DuplicateHandle(                
  GetCurrentProcess(),  
  hThread[i],  
  GetCurrentProcess(),  
  &pDupThreadHandle[i],  
  0,   FALSE,   DUPLICATE_SAME_ACCESS);  
   
  ResumeThread(hThread[i]);  
   
  //   Check   the   return   value   for   success.    
  if   (hThread[i]   ==   NULL)    
  {  
      printf("CreateThread   failed.");    
  }  
   
   
  thread   func:  
   
  DWORD   WINAPI   ThreadOTSearch(   threadcs   *thcs   )    
  {  
  //res为查询句柄  
  Result[thcs->tag].res   =   GetRes(thcs->szstr);  
  return   0;  
  }  
   
  此种方法总是有线程间冲突的情况  
   
  请问该如何解决 问题点数:100、回复次数:19Top

1 楼MaiCle(原来小日本连畜生都不如)回复于 2003-08-04 20:50:48 得分 3

不熟,UP。Top

2 楼pi1ot(-=\Pilot/=-)回复于 2003-08-04 21:35:06 得分 3

多线程的话你怎么处理返回呢,感兴趣。Top

3 楼chinazcw(笑口常开)回复于 2003-08-04 23:03:48 得分 3

我是搞不定的,来凑凑热闹,顺道混点分~~~啊哈~~Top

4 楼antijpn(antijpn)回复于 2003-08-04 23:59:10 得分 20

以前曾经想写多线程的程序,后来发现太困难,放弃了  
   
  其实多线程并不一定高效,线程之间的切换会造成CPU周期的浪费Top

5 楼sunyt(sunyt)回复于 2003-08-05 17:53:10 得分 0

高手帮忙啊!!!Top

6 楼sunyt(sunyt)回复于 2003-08-05 18:19:15 得分 0

pi1ot(-=\Pilot/=-):   返回给全局结构体Top

7 楼cityvagrant(城市过客)回复于 2003-08-05 18:30:04 得分 2

up有分吗?Top

8 楼chinazcw(笑口常开)回复于 2003-08-05 18:36:19 得分 2

UPUPUPTop

9 楼maxcai(cailin)回复于 2003-08-05 18:42:07 得分 2

up&接分哟Top

10 楼pi1ot(-=\Pilot/=-)回复于 2003-08-05 18:55:35 得分 5

我是说你怎么确定线程什么时候全部返回?然后输出到浏览器?Top

11 楼hhb_007()回复于 2003-08-05 19:41:35 得分 50

同意   antijpn(antijpn)    
  多线程主要用在会   I/O阻塞的地方,如果是检索数据的话,用多线程并不见得会提升效率,反而会由于主线程和查询线程间的交互增加复杂度。  
  如果要使用多线程,可以在查询结束后发消息通知主线程,通常即创建窗口的线程。  
      也许还有其他方法,欢迎各位大侠指正。  
  Top

12 楼sunyt(sunyt)回复于 2003-08-06 11:26:37 得分 0

pi1ot(-=\Pilot/=-):  
  我定义了一个全局的结构体数组    
  会给每个线程传一个结构体   结构体中有一项为是否检索完毕的标志  
   
  创建完几个线程之后   会有一段检测程序的代码  
  for(i   =   0   ;   i   <   线程个数;   i++)  
  {  
  while   (Result[i].stag   !=   'Y')  
        Sleep(1);  
   
  //关闭当前线程  
  CloseHandle(pDupThreadHandle[i]);  
  }Top

13 楼sunyt(sunyt)回复于 2003-08-06 21:24:05 得分 0

???  
  Top

14 楼lemon520(喷血)回复于 2003-08-06 21:50:43 得分 2

UP!  
  接分!Top

15 楼lilianghao(hao)回复于 2003-08-07 10:45:04 得分 2

upTop

16 楼wshcdr(dd)回复于 2003-08-07 15:44:43 得分 2

没听说过,只能凑热闹一下了Top

17 楼BAYERN(我有个愿望-要把月亮踹成直的,把太阳捏成方的)回复于 2003-08-07 16:02:23 得分 2

俺不会,来接分的。Top

18 楼sunyt(sunyt)回复于 2003-08-08 18:07:23 得分 0

有会的吗?Top

19 楼warrenchou(hello)回复于 2003-08-08 18:10:28 得分 2

upTop

相关问题

  • 有没有办法使CGI以线程方式执行?
  • 高分寻找C编写的CGI或ISAPI程序!
  • 谁有CGI程序用于分析标准输入的C++类?
  • Win32线程问题!100分!!!
  • 100分征求用DELPHI实现一个CGI程序服务问题。
  • delphi开发cgi程序???
  • iis支持cgi程序吗?
  • 如何运行cgi程序???
  • CGI编程中的难题!!
  • 主线程怎么等待辅助线程呢?(立刻给分!!!)

关键词

  • 多线程
  • 线程
  • 查询
  • 结构
  • thcs
  • 程
  • hthread
  • 结构体
  • thread

得分解答快速导航

  • 帖主:sunyt
  • MaiCle
  • pi1ot
  • chinazcw
  • antijpn
  • cityvagrant
  • chinazcw
  • maxcai
  • pi1ot
  • hhb_007
  • lemon520
  • lilianghao
  • wshcdr
  • BAYERN
  • warrenchou

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo