CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

求一个算法

楼主LouisZX()2006-03-04 13:18:06 在 VC/MFC / 基础类 提问

有8个线程,按线程号排列放入一个队列中,比如说是"47,   987,   8787,   45,   587,   88,   1245,   982"吧.   首先用临界区控制来执行线程号是47的线程,待处理完毕后,47排入队列的尾部,队列变成"987,   8787,   45,   587,   88,   1245,   982,   47",然后再处理线程号是987的线程,同样的方法,线程987处理完毕,也排入队列的尾部,线程队列变为"8787,   45,   587,   88,   1245,   982,   47,   987",然后再处理线程8787,同样的方法,以此循环.也就是说每次先处理队列首部的线程,处理完毕的线程号排到队列的尾部,然后再处理首部的线程,始终这样循环. 问题点数:30、回复次数:6Top

1 楼charles_y(每天上网一小时)回复于 2006-03-04 13:33:24 得分 16

说说我的想法:  
   
  每个线程开始的时候锁住临界区,出来的时候释放临界区  
   
  for(;;)  
  {  
      释放临界区;  
        执行选定的线程,其他的suspend;  
      进入临界区;  
      调整顺序;  
  }  
   
  至于怎么调整顺序,自己想想啦Top

2 楼yuanbocsut(井冈星火)回复于 2006-03-04 15:32:00 得分 2

UPTop

3 楼LouisZX()回复于 2006-03-04 15:43:14 得分 0

请具体帮忙写一个实现,谢谢了Top

4 楼ouyh12345(五岭散人)回复于 2006-03-06 08:53:34 得分 2

用循环链表调整顺序Top

5 楼bohlee(我心澎湃)回复于 2006-03-06 09:52:24 得分 4

别人可以说思路,实现最好自己Top

6 楼mosing(A Crimson Cosmos)回复于 2006-03-07 01:36:05 得分 6

可以使用8个Event,每个线程等待一个。开始时Set线程47等待的Event,线程   47   执行完后   Set   线程   987   等待的   Event,依次类推。Top

相关问题

  • 算法
  • 算法
  • 算法!
  • 算法
  • 算法...
  • 算法
  • 算法啊算法!!
  • 梭哈算法
  • MD5算法
  • 求算法!

关键词

  • 线程
  • 尾部
  • 执行
  • 队列
  • 处理
  • 临界区
  • 顺序
  • 完毕
  • 号
  • 等待

得分解答快速导航

  • 帖主:LouisZX
  • charles_y
  • yuanbocsut
  • ouyh12345
  • bohlee
  • mosing

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

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