/**
*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());
}
}