在java中,每次程序运行至少启动2个线程。一个是main线程,一个是垃圾收集线程。因为每当使用java命令执行一个类的时候,实际上都会启动一个JVM,每一个jVM实习在就是在操作系统中启动了一个进程。
描述实现Runnable接口
(一)创建一个类,实现Runnable接口
(二)复写Runnable里面的run方法
(三)实例化这个类,调用start方法,此时线程开启,就执行该线程的run方法
class MyThread implements Runnable{
private int ticket = 5; //5张票
public void run() {
for (int i=0; i<=20; i++) {
if (this.ticket > 0) {
System.out.println(Thread.currentThread().getName()+ "正在卖票"+this.ticket--);
}
}
}
}
public class lzwCode {
public static void main(String [] args) {
MyThread my = new MyThread();
new Thread(my, "1号窗口").start();
new Thread(my, "2号窗口").start();
new Thread(my, "3号窗口").start();
}
}
实现Runnable接口的好处如下:
1.避免了java里面的单继承问题
2.适合多个相同的程序代码的线程去处理同一个资源
3.增加程序的健壮性,代码可以被多个线程共享,代码和数据独立