c语言线程的切换,一个关于C语言的线程切换问题0w0

代码如下:

#include "stdafx.h"

#include

#include

#include

#include

void fi(int a,int b,int tf,int tl){   //函数用于在两个线程

代码如下:

#include "stdafx.h"

#include

#include

#include

#include

void fi(int a,int b,int tf,int tl){   //函数用于在两个线程之间切换

it:

while(kbhit()==0){  //第一个线程,只用来对a进行倒计时

do{

tf=time(NULL);}  //初始化timefrist

while(0);

while(1){    //无限循环,直到一秒过后

tl=time(NULL);   //初始化timelast

if(tl-tf==1){     //如果时间相差1

system("cls");  //清屏

printf("%d

",a);  //输出

a--;      //减一

break;//退出第二循环,继续第一个线程循环

};

};

};

getch();//清除缓存

while(kbhit()==0){   //第二个线程,用来对ab两个线程进行倒计时

do{

tf=time(NULL);}

while(0);

while(1){

tl=time(NULL);

if(tl-tf==1){

system("cls");

printf("%d  %d

",a,b);

a--;

b--;

break;

};

};

};

goto it;   //当输入后返回第一线程

};

main(int argc, char* argv[]) //主函数

{

int a=10,b=8,tf=0,tl=0; //初始化数据

fi(a,b,tf,tl);       //动用循环函数

return 0;

}

代码用于当有输入时,将第一线程转入第二线程进行倒计时,再次输入则将第二线程转回第一线程,问题在于,当第一线程转到第二线程后,第二线程却转不回第一线程了,求解=v=

展开

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值