线程创建的方法:
方法一:继承Thread类
方法二:实现Runnable接口
方法三:实现Calable接口
分析:方法一和方法二,推荐使用方法二的接口,可以避免单继承的局限性,同时也便于资源共享。
其中,实现Calable接口,可以有返回值,可以抛出异常,其他两种方法则不可以,但是实现Calable接口相对麻烦一点。
下面就方法一和方法二进行简单代码展示:
//方法一: 继承Thread类
public class MyThread extends Thread{
public MyThread(String name) { //构造器 为了设置线程的名字
super(name);
}
@Override
public void run() {
for (int i = 1; i <=10; i++) {
System.out.println(Thread.currentThread().getName()+": "+i);
}
}
public static void main(String[] args) {
MyThread mt1=new MyThread("我的线程1"); //如果无一个参数构造器,可直接mt.setName()
// mt.setName("我的线程");
mt1.start();
MyThread mt2=new MyThread("我的线程2");
// mt.setName("我的线程2");
mt2.start();
}
}
//方法二: 实现Runnable接口
public class MyThread02 implements Runnable{
@Override
public void run() {
for (int i = 1; i <=10; i++) {
System.out.println(Thread.currentThread().getName()+": "+i);
}
}
public static void main(String[] args) {
//创建线程对象,把实现了Runnable接口的对象作为参数传入
Thread t1=new Thread(new MyThread02());
t1.setName("我的线程1");
t1.start();
Thread t2=new Thread(new MyThread02(),"我的线程2");
t2.start();
}
}