Java多线程一:多线程的创建一之继承Thread类

多线程创建方式一:继承Thread类

一、继承Thread类方式创建多线程步骤

1.创建一个继承于Thread类的子类
2.重写Thread类的run()---->将此线程执行的操作声明在run()中
3.创建Thread类的子类的对象
4.通过此对象调用start()
例子:创建两个分线程,一个遍历100以内的偶数,一个遍历100以内的奇数
package com.ni.multithreading;

//遍历偶数
//1.创建一个继承于Thread类的子类
class EvenNumber extends Thread{
    //2.重写Thread类的run()
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            if (i%2==0) {
                System.out.println(Thread.currentThread().getName()+":"+i);
            }
        }
    }
}
//遍历奇数
class OddNumber extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            if (i%2!=0) {
                System.out.println(Thread.currentThread().getName()+":"+i);
            }
        }
    }
}
public class ThreadTest2 {
    public static void main(String[] args) {
        //3.创建Thread类的子类的对象
        EvenNumber e1 = new EvenNumber();
        OddNumber o2 = new OddNumber();
        //设置分线程名称
        e1.setName("分线程1");
        o2.setName("分线程2");
        //4.通过此对象调用start()
        e1.start();
        o2.start();
    }
}

执行结果:

 

 出现线程交互。

二、Thread类的相关方法

void start():启动线程,并执行对象的run()方法

run():线程在被调度时执行的操作

String getName():返回线程名称

void setName(String name):设置线程名称

static Thread currentThread():返回当前线程,通常用于主线程和Runnable实现类

static viod yield():线程让步,暂停当前正在执行的线程,让优先级更高或相同的线程来执行

join():在一个程序执行流中调用其他线程的join()方法,这时当前线程被阻塞,直到join()方法加入的线程执行完为止

static void sleep(long millis):指定时间为毫秒。使当前线程在指定时间内放弃对执行,让其他线程有机会执行,时间到后重新排队,使用该方法需要抛出InterruptedException异常

stop():强制结束线程生命周期

boolean isAlive():返回boolean,判断线程是否还活着

三、线程优先级

1、线程优先级等级

Max_PRIORITY:10

MIN_PRIORITY:1

NORM_PRIORITY:10

2、方法

getPriority():返回线程优先值

setPriority(int newPriority):改变线程优先级

3.说明

(1)线程创建时继承父线程的优先级。

(2)低优先级只是获得调度的概率低,并非一定是在高优先级线程之后才被调用。

 

posted @ 2021-07-03 22:31  Cozy11  阅读(232)  评论(0)    收藏  举报