多线程有两种创建方法(请忽视变量名没含义,(。•ˇ‸ˇ•。)英语太差,每次都是a,b),方法一:
/*多线程的第一种创建方法
* 1.继承thread类
* 2.重写run方法
* 3.新建一个thread类的对象
* 4.通过start方法启动该线程
*/
class test extends Thread{
private int cnt = 50;
public void run(){
for(int i=0;i<cnt;i++)
System.out.println(Thread.currentThread()+" "+i+" "+"-----多线程");
}
}
public class Test1 {
public static void main(String[] args) {
test a= new test();
test b = new test();
a.start();
b.start();
}
}
第二种
/*多线程的第二种创建方法
* 1.实现借口Runable
* 2.重写run方法
* 3.实例化一个实现Runable接口类的对象
* 4.创建一个线程类,把实现Runable接口类的对象传进去
* 5.通过start方法启动该线程
*/
class test implements Runnable{
private int cnt = 50;
public void run(){
for(int i=0;i<cnt;i++)
System.out.println(Thread.currentThread()+" "+i+" "+"-----多线程");
}
}
public class Text1 {
public static void main(String[] args) {
test aa = new test();
test bb = new test();
Thread a = new Thread(aa);
Thread b = new Thread(bb);
a.start();
b.start();
}
}
这两种方法创建的线程的区别:
1.第一种方法中的cnt不独立,所以会输出100个结果,而第二种方法的cnt是独立出来的,结果只输出50个。
2.第一种方法继承了thread类,而java中是单继承,所以该类不能再继承别的类,而用第二种就避免了单继承的局限性。