什么是线程?
可以这样理解:线程就像是赛道,每个赛道互不影响。
但是我们一般的程序中都是顺序进行的,也就是一个赛道的跑完后才进行下个赛道。
而多线程弥补了这一缺点,让多个赛道能够同时运作,因此大大加快了运行速度。
比如我们的售票窗口,地铁的闸门,或者游戏里的飞机坦克他们都能在同一时间独立的运作,这就是多线程。
怎样完成多线程?
那肯定是用到Runnable接口和Thread类了,通过实现Runnable中的run()方法再由Thread类中的start()方法启动run就可以完成多线程。ps:Thread中的start()方法可以协调系统资源。
public interface Runnable{ //Runnable接口
public void run();
}
现在演示一下多线程:
class Road implements Runnable //创建一个Road类
{
int Cars=15;
@Override
public void run() { //实现run方法
for(int i=1;i<=Cars;)
{
if(Cars>0)
System.out.println("Passenger "+(this.Cars--)+" Out "); //输出每个Car的信息
}
}
}
public class Test1{
public static void main(String[] args) {
Road rd=new Road(); //实例化一个Road
new Thread(rd).start(); //创建road两个线程
new Thread(rd).start(); //注意!!!!给Thread的对象必须是同一个,这样才能实现同时完成一个任务
}
}
在Thread中有一个构造方法public Thread(Runnable targer),可以给Thread一个Runnable类型的对象,由此才能调用的start()方法。
注意!!!!给Thread的对象必须是同一个,这样才能实现同时去完成同一个任务。
对象不同只会各自单独去单程同一个任务,这个自己去测试。
总结:
实现多线程需要实现Runnbale中的run方法,然后通过给Thread一个Runnable类型的对象(其实就是那个类的对象上转型来的,准确来说接口不能实例化),来调用Thread中的start()方法,完成多线程。