C/C++多线程实现龟兔赛跑

题⽬:⻳兔赛跑 跑道距离 100⽶ 乌⻳(⼀个线程) 每秒 3⽶ 不睡觉 ;兔⼦(⼀个线程)每秒5⽶ 每跑15⽶睡2秒钟。 请模拟⽐赛情况:

复制代码
#include <iostream>
#include <thread>
#include<unistd.h>
using namespace std;

void proRabbit(int totalLen){
int leftLen=totalLen;
    int count=0;
    while(true){
        leftLen-=5;
        count+=5;
        sleep(1);
        if(leftLen<=0){
            printf("兔子跑到终点!\n");
            break;
        }else{
            printf("兔子还剩 %d到终点!\n",leftLen);
        }
        if(count % 15==0){
            sleep(2);
        }
    }
}

void proTurtle(int totalLen){
int leftLen=totalLen;
    while(true){
        leftLen-=3;
        sleep(1);
        if(leftLen<0){
            printf("乌龟跑到终点!\n");
            break;
        }else {
            printf("乌龟还剩 %d到终点!\n", leftLen);
        }
    }
}

int main(){
    int totalLen =100;
    thread pr(proRabbit,totalLen);
    thread pt(proTurtle,totalLen);
   pr.join();
pt.join(); }
复制代码

 

posted @   不爱菠萝的菠萝君  阅读(181)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
主题色彩
点击右上角即可分享
微信分享提示