多线程
计算机同时执行一件事情,所以宏观上看,所有程序时同时运行的,微观上是走走停停的,这种现象叫做并发运行
对于操作系统而言,并发执行的任务叫做进程
对于程序而言,并发执行的任务叫线程
Thread类
其每一个实例代表一个线程
线程
其内部可以定义可以并发操作的任务
方法继承Thread并重写run方法
将需要并发执行的任务逻辑定义在该方法里面
线程Thread类有一个重要的方法
start():启动线程,并发执行run方法中的逻辑.所以,run方法是会被自动调用的,我们永远不会主动调用run方法.
线程是一个典型的使用了模板模式的类
在Thread中封装了线程启动的复制过程.因为所有线程启动的方式是一样的.那么不同点在于线程要并发执行的任务.使用要求子类重写run方法.各自定义不同点就行.
我们应该将线程与其并发要执行的任务分开,
这样可以使程序变得更加灵活.尤其在线程池有明显体现.
public class ThreadSayMe extends Thread{
@Override
public void run() {
for(int i=0;i<10000;i++){
System.out.println("我是修水管的.");
}
}
}
public class ThreadSayWho extends Thread{
@Override
public void run() {
for(int i=0;i<10000;i++){
System.out.println("谁啊");
}
}
}
public class TestThread {
public static void main(String[] args) {
Thread t1=new ThreadSayMe();
Thread t2=new ThreadSayWho();
t1.start();
t2.start();
}
}