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(flag2true)
{
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();
}
}