目录
线程:
继承Thread类:
实现Runnable类:
实现Callable接口:
验证多线程:
线程:
定义:进程可以同时执行多个任务,每个任务就是线程。举个例子:一个Java程序,如果同时有两个循环同时进行,就是线程。 再比如,你用百度网盘,边看视频,边下载。
继承Thread类:
步骤写在代码里的
class mythread extends Thread
{@Override//2.重写run方法,将线程任务代码写在run方法里public void run() {for (int i = 0; i < 200; i++) {System.out.println("线程进行了"+i+"次");}}
}class Test
{public static void main(String[] args) {//3.创建线程对象mythread m1=new mythread();//4.调用start方法开启线程m1.start();}
}
实现Runnable类:
//1.编写一个类实现Runnable接口
class myrunable implements Runnable {@Override//2.重写run方法,将线程任务代码写在run方法里public void run() {for (int i = 0; i < 200; i++) {System.out.println("线程进行了" + i + "次");}}
}class Test1
{public static void main(String[] args) {//3.创建线程任务资源myrunable m1=new myrunable();//4.创建线程对象,将资源传入Thread t1= new Thread(new myrunable());//5.使用线程对象调用start方法开启线程}
}
实现Callable接口:
此方法可以有返回值
//1.编写一个类实现Callable接口,注意可以接收泛型
class mycallabel implements Callable<Integer>
{@Override//2.重写call方法,将线程任务代码写在call方法public Integer call() throws Exception {int sum=0;for (int i = 0; i < 200; i++) {sum+=i;System.out.println("线程进行了" + i + "次");}return sum;}
}class Test2
{public static void main(String[] args) {//3.创建线程任务资源对象mycallabel m1=new mycallabel();//4.创建线程任务对象,封装线程资源FutureTask<Integer> f1=new FutureTask<>(m1);//5.创建线程对象,传入线程任务对象Thread t1=new Thread(f1);//6.使用线程对象调用start方法t1.start();}
}
验证多线程:
验证多线程,最简单的方法,我们拿第三种举例子。
我们在最后加上一个循环。
然后就会发现这连个循环在交替打印,说明他们就是多线程