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 @ 2023-02-13 20:05  不爱菠萝的菠萝君  阅读(208)  评论(0)    收藏  举报