C++多线程

1.线程:程序中独立运行的程序段
多线程:程序中存在多个并行处理的程序段
2.进程:一个独立运行的程序
操作系统为每个进程单独分配内存空间,但一般不会为线程分配空间,进程的地位比线程要高
进程直接与操作系统打交道,线程通过程序与操作系统打交道,
线程在使用上更加灵活
在这里插入图片描述多线程的案例:这个多线程是受操作系统制约的,操作系统最短的时间间隔只有10毫秒,如果计时器的时间间隔小于10毫秒则是不起作用的
面向过程的思维方式
#include
#include <windows.h>
#include <conio.h>
#include
using namespace std;
void gotoxy(int x,int y)
{
HANDLE h;
COORD c;
c.X=x;
c.Y=y;
h=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(h,c);
}
void move(int x0,int y0)
{
int x1=x0,y1=y0;
int x2=x0,y2=y0;
clock_t t1,t2;
bool flag1=true,flag2=true;
t1=clock();
t2=clock();
while(true)
{
if(flag1true)
{
gotoxy(x1,y1);
cout<<“●”;
flag1=false;
}
if(clock()-t1>30)
{
gotoxy(x1,y1);
cout<<" ";
++x1;
x1=x1%77;
flag1=true;
t1=clock();//重新进行计时
}
//----------------------------------------------------
if(flag2
true)
{
gotoxy(x2,y2+10);
cout<<“●”;
flag2=false;
}
if(clock()-t2>20)
{
gotoxy(x2,y2);
cout<<" ";
++x2;
x2=x2%77;
flag2=true;
t2=clock();//重新进行计时
}
}
}
int main()
{

    move(0,10);
	return 0;
}
面向对象的
#include <iostream>

#include <windows.h>
#include <conio.h>
#include
using namespace std;
class game
{
private:
int x,y;
clock_t t,tt;
bool flag;
public :
game(int x0,int y0,int tt0)
{
x=x0;
y=y0;
tt=tt0;
flag=true;
t=clock();
}
void gotoxy(int x,int y)
{
HANDLE h;
COORD c;
c.X=x;
c.Y=y;
h=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(h,c);
}
void move()
{

   if(flag==true)
	 
   {
       gotoxy(x,y);
       cout<<"●";
	   flag=false;
	}
	if(clock()-t>30)
	{
      gotoxy(x,y);
      cout<<"  ";
      ++x;
      x=x%77;
      flag=true;
	  t=clock();//重新进行计时
	}

}
};

int main()
{
game g1(0,10,10),g2(0,20,20);//注意这个延时的理解
while(true)
{
g1.move();
g2.move();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值