版权声明:旨在技术交流与成长,欢迎大家来交流学习。 https://blog.csdn.net/qq941263013/article/details/83016662
创建线程的两种方式:
继承Thread类和实现Runnable接口。
创建线程通常通过实现Runnable接口来实现,可以避免单继承的局限性。
1.继承Thread类;
/**
* 创建线程:继承Thread类
* 1.定义CreateThreadExtendThread类继承Thread类,并重写run()方法;
* 2.创建CreateThreadExtendThread类的实例,即创建了新的线程对象;
* 3.调用新的线程对象的start()方法来启动该线程。(new CreateThreadExtendThread().start();)
* 注:Thread.currentThread().getName()方法可以获取当前线程的名称。
*/
public class CreateThreadExtendThread extends Thread{
//重写run方法,run方法的方法体就是执行体
@Override
public void run() {
//super.run();
for (int i = 0; i < 10; i++) {
LogUtil.e("创建线程:继承Thread类", getName() + "----" + i);
}
}
}
2.实现Runnable接口;
/**
* 创建线程:实现Runnable接口
* 1.定义CreateThreadImplementsRunnable类实现Runnable接口,并重写run()方法;
* 2.创建CreateThreadImplementsRunnable类的实例,并依此实例作为Thread的target来创建Thread对象,
* 该Thread对象是新的线程对象;
* 3.调用新的线程对象的start()方法来启动该线程。
* (CreateThreadImplementsRunnable createThreadImplementsRunnable = new CreateThreadImplementsRunnable();
new Thread(createThreadImplementsRunnable).start();)
* 注:Thread.currentThread().getName()方法可以获取当前线程的名称。
*/
public class CreateThreadImplementsRunnable implements Runnable {
//重写run方法,run方法的方法体就是执行体
@Override
public void run() {
for (int i = 0; i < 10; i++) {
LogUtil.e("创建线程:实现Runnable接口", Thread.currentThread().getName() + "----" + i);
}
}
}
3.调用;
new CreateThreadExtendThread().start();
CreateThreadImplementsRunnable createThreadImplementsRunnable = new CreateThreadImplementsRunnable();
new Thread(createThreadImplementsRunnable).start();