java创建线程有几种方式?
java创建线程有几种方式?
成都华信智原Java培训老师在课堂上为大家讲解过Java线程的创建,成都华信智原Java培训机构老师现在为大家分享一篇java创建线程有几种方式?这几种方式有什么优劣?
首先我们来看下老师给我们讲过的创建线程的“两种”方法:
一、继承Thread类创建线程子类
1.在这子类中重写run方法,在run方法内写线程任务代码
2.创建该子类实例,即是创建了一个线程实例
3.调用该实例的start方法来启动该线程
二、建一个类去实现Runnable接口
1.该类去实现接口的run方法,run方法内写线程任务代码
2.创建该类实例,把该实例当作一个标记target传给Thread类,如:Thread t = new Thread(该类实例);即创建一个线程对象
3.调用线程的star方法来启用该线程
扩展一下第三种老师课上没讲过的创建线程方法:
三、通过Callable接口和Future创建线程
1.创建一个类去实现Callable接口,实现该接口的call方法
CallableTest implements Callable{
public Integer call(){}
}
2.创建实现Callable接口的类的实例,用FutureTask类来包装该对象
CallableTest ct = new CallableTest();
FutureTask ft = new FutureTask(ct);
3.用FutureTask对象作为Thread对象的target创建并启动新线程
Thread t = new Thread(ft);
t.start();
优劣:
二、三两种方式是实现某接口,可以去继承其他类,操作相对灵活,并且能多个纯种共享一个对象Thread t = new Thread(ft);里面的ft对象能多个线程共享,劣势是编程相对复杂
一种方式是继承Thread类,不能再继承其他类,编程相对简单
成都华信智原Java培训老师在课堂上为大家讲解过Java线程的创建,成都华信智原Java培训机构老师现在为大家分享一篇java创建线程有几种方式?这几种方式有什么优劣?
首先我们来看下老师给我们讲过的创建线程的“两种”方法:
一、继承Thread类创建线程子类
1.在这子类中重写run方法,在run方法内写线程任务代码
2.创建该子类实例,即是创建了一个线程实例
3.调用该实例的start方法来启动该线程
二、建一个类去实现Runnable接口
1.该类去实现接口的run方法,run方法内写线程任务代码
2.创建该类实例,把该实例当作一个标记target传给Thread类,如:Thread t = new Thread(该类实例);即创建一个线程对象
3.调用线程的star方法来启用该线程
扩展一下第三种老师课上没讲过的创建线程方法:
三、通过Callable接口和Future创建线程
1.创建一个类去实现Callable接口,实现该接口的call方法
CallableTest implements Callable{
public Integer call(){}
}
2.创建实现Callable接口的类的实例,用FutureTask类来包装该对象
CallableTest ct = new CallableTest();
FutureTask ft = new FutureTask(ct);
3.用FutureTask对象作为Thread对象的target创建并启动新线程
Thread t = new Thread(ft);
t.start();
优劣:
二、三两种方式是实现某接口,可以去继承其他类,操作相对灵活,并且能多个纯种共享一个对象Thread t = new Thread(ft);里面的ft对象能多个线程共享,劣势是编程相对复杂
一种方式是继承Thread类,不能再继承其他类,编程相对简单