创建多线程的两种方式
时间:2020-06-18 16:51:11
收藏:0
阅读:61
/*
创建线程的第一种方法
继承Thread类
实现:
1.创建一个类,继承Thread类(Thread的子类)
2.重写Thread的run()方法
3.创建一个Thread子类的实例对象
Thread子类 Thread子类对象 = new Thread子类;
4.通过Thread子类对象调用他的start方法
Thread子类对象start() 启动多线程
创建线程的第二种方式:
1.实现runable接口,重写run方法
2.创建实现类的对象实例
实现类 实现类对象 = new 实现类();
3.创建Thread的构造函数,并将实现类作为参数传入
Thread的构造函数:public Thread(Runnable target) {}
Thread Thread对象 = new Thread(runnable实现类对象);
4.使用Thread对象调用start()方法,启动多线程
注意事项:
1.不能通过实例对象直接调用 子类或实现类的run()方法,因为在多线程中都是通过start方法启动多线程,如果直接用调用run()
就不是启动多线程,而是简单的方法调用,他还是一个单线程的程序。
继续Thread类和 实现runable接口 两者的区别
这里我感觉就是实现runable接口的优势:一般都是实现Runable接口,来运转多线程。
理由的话:就是继承与实现接口的优势
继承比较单一,接口可以实现多继承,并且仍然可以继承其他类
因为java类是单继承的,继承了Thread类之后就无法继承别的类了
* */
public class DemoThread {
public static void main(String[] args) {
//第一种方式DemoThreads继承了Thread类,并重写run方法
DemoThreads d = new DemoThreads();
d.start();
//第二种方式实现runnable方法,并重写run方法
//完整的写法
// demoThreadRunable dd = new demoThreadRunable();
// Thread t = new Thread(dd);
// t.start();
//链式编程的写法
new Thread(new demoThreadRunable()).start();
//主线程
for (int i = 0; i < 20; i++) {
System.out.println("主线程"+i);
}
}
}
//继承Thread类
class DemoThreads extends Thread{
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("继承Thread类"+i);
}
}
}
//实现Runnable
class demoThreadRunable implements Runnable{
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("实现Runnable接口"+i);
}
}
}
原文:https://www.cnblogs.com/wxgShareBlog/p/13158102.html
评论(0)