线程问题

阿线 2012-04-17 08:47:15
各位大侠:
我学c++时间不长,才学月限,特在此求助各位,还望大家能够帮帮忙:

有三个线程同时计算阶乘,并且有一个定时器,计算时间,看最后哪个线程计算的快。
...全文
100 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿线 2012-04-27
  • 打赏
  • 举报
回复
谢谢!

忘世麒麟 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

与定时器有 神马 关系?

用 pthread_create 的时候,记录一下 计算前后的系统时间,求一下差不就可以了吗?
[/Quote]
是可以没什么关系。你的方法牛!
chayedanwc 2012-04-18
  • 打赏
  • 举报
回复
在每个线程中计算内核运行时间。


其实即使这样,你也无法确定到底是哪个线程运行较快。
Windows是抢断式多线程,一个线程可能在任意时刻被另一个线程中断。个人感觉,你用3个线程跑起来,每次计算的时间都是不一样的,三个线程中即使写一样的代码,也无法确定究竟是哪个快。
前提是你不设置线程的优先级。
giant1st 2012-04-17
  • 打赏
  • 举报
回复
与定时器有 神马 关系?

用 pthread_create 的时候,记录一下 计算前后的系统时间,求一下差不就可以了吗?
忘世麒麟 2012-04-17
  • 打赏
  • 举报
回复
所谓定时器就是三个double型变量嘛,只是大家都这么叫而已。在每一个线程激活的时候让他执行阶乘的计算(这个计算的函数是线程创建时的一个参数--看书),同时在这个函数里使用一个计数器就行了。具体的可以参看一些C++教材。这种小问题应该对你问题不大。
阿线 2012-04-17
  • 打赏
  • 举报
回复
嗯,谢谢,那怎么样才能解决?
忘世麒麟 2012-04-17
  • 打赏
  • 举报
回复
你想问什么?源代码?还是思路?这里不许代写作业.
线程的话注意不要设一个定时器.应该为每一个设置一个.这样才能得到每一个的时间.因为他们是随机进行的也许这个线程刚开始一半那个线程又开始了.
最好是设置三个优先级线程1运行时,让线程2,3,sleep(),直到1得出结果后唤醒2,2得出结果后唤醒3.最后分别打印时间.
evencoming 2012-04-17
  • 打赏
  • 举报
回复
结贴率 0.
lz还是结贴了再来吧

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧