Java创建多线程
两种方式:
(1)继承Thread类
(2)实现Runable接口
继承Thread类
步骤:
(1)创建一个继承Thread类的子类
(2)重写Thread类的run()方法,将此线程执行的操作声明在run()中
(3)创建Thread类的子类对象
(4)通过该子类对象调用start()方法:①启动当前线程,②调用当前线程的run()
启用一个线程,需要调用start方法而不是run方法;
一个对象start一次,如果要启动多个线程,需要多个对象。
实现Runable接口
步骤:
(1)创建一个实现Runable接口的类
(2)实现类去实现Runable中的抽象方法run
(3)创建实现类的对象
(4)将该对象作为参数传入Thread类的构造器中,创建Thread对象
(5)Thread对象调用start方法
两种方式的选择
优先选择Runable接口:
①没有单继承的局限性
②适合多个线程共享数据
(如车站售票,只有一个实现类对象,虽然创建多个Thread对象,但共用一个ticket变量;如果采用继承方式,则不是共享一个变量)
两种方式的联系
都实现了Runable接口,一个是直接实现,一个是简介实现;
都重写run方法;
都通过Thread类的start方法启动线程。