多线程(继承Thread)

时间:2022-01-28 09:24:22

/**

*Thread的常用方法

*1.start(),启动线程再执行run方法

*2.run():子线程要执行的代码放入run()方法中

*3.currentThread()静态的,调取当前线程,返回还是Thread,

*4.getName(),setName()获取和设置此线程的名字

*5.yield():调用此方法的线程释放CPU的执行权

*7.join():在A线程中,条用B线程的join方法,表示当执行到此方法,A线程停止知道B线程执行完,A执行再执行

*8.isAlive();返回时Boolean,查看线程是否还活着

*9.sleep(long l):显示的是让当前线程睡眠多少毫秒

*10. setPriority()设置优先级,最小是1,最大是10,默认是5

*/

//1.创建一个继承Thread的类

class SubThread1 extends Thread{

//2.重写Thread类的run方法,方法内实现此子线程要完成的功能

public void run(){

for(int i = 1;i<101;i++){

try {

Thread.currentThread().sleep(1000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

System.out.println(Thread.currentThread().getName()+":"+i);

}

}

}

public class TestThread1 {

public static void main(String[] args) throws Exception {

//3.创建一个子类的对象

SubThread1 st = new SubThread1();

//4.调用线程的start方法,启动此线程;再调用run方法(一个线程只能执行一次start(),可以创建两个对象来分别执行start方法!)

st.start();

//主线程

for(int i = 1;i<101;i++){

System.out.println(Thread.currentThread().getName()+":"+i);

// if(i%10 ==0){

// Thread.currentThread().yield();

// }

if(i == 20){

st.join();

}

}

System.out.println(st.isAlive());

}

}