创建线程三种方法是1.继承Thread类,2.实现Runnable接口,3.使用Executor框架创建线程池,主要实现前两个经常用到的方法。
1:继承Thread
public class ThreadDemo1 extends Thread{
public int ticket=5;
public ThreadDemo1(String name){
super(name);
}
public void run() {
for (;ticket>0;ticket--) {
System.out.println(Thread.currentThread().getName()+"Ticket:"+ticket);
}
}
public static void main(String[] args){
new ThreadDemo1("线程A").start();
new ThreadDemo1("线程B").start();
}
}
重写继承下来的run方法即可,输出:
线程ATicket:5
线程BTicket:5
线程ATicket:4
线程BTicket:4
线程ATicket:3
线程ATicket:2
线程ATicket:1
线程BTicket:3
线程BTicket:2
线程BTicket:1
2.实现Runnable接口
public class ThreadDemo2 implements Runnable{
public int ticket=5;
public void run() {
synchronized(this){
for (;ticket>0;ticket--) {
System.out.println(Thread.currentThread().getName()+"Ticket:"+ticket);
}
}
}
public static void main(String[] args) {
ThreadDemo2 td2=new ThreadDemo2();
new Thread(td2,"线程A").start();
new Thread(td2,"线程B").start();
}
}
实现Runnable接口也是要实现run方法,但是这种方式可以共享一个变量,输出:
线程ATicket:5
线程ATicket:4
线程ATicket:3
线程ATicket:2
线程ATicket:1