/*
  测试Thread中的常用方法:
  1.start():启动当前线程;调用当前线程的run()
  2.run():通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中
  3.currentThread():静态方法,返回执行当前代码的线程
  4.getName():获取当前线程的名字
  5.setName():设置当前线程的名字
  6.yield():释放当前cpu的执行权
  7.join():在线程a中调用线程b的join(),此时线程a就进入阻塞状态,直到线程b完全执行完以后,线程a才结束阻塞状态
  8.stop():已过时,不推荐使用。当执行此方法时,强制结束当前线程。
  9.sleep(long millitime):  简写:sleep()
                           让当前线程“睡眠”指定的时间(millitime 毫秒)。在指定的时间内,当前线程
                           时阻塞状态。
  10.isAlive():判断当前线程是否存活。
 
 /
package com.atguigu.java1;/*** 测试Thread中的常用方法:* 1.start():启动当前线程;调用当前线程的run()* 2.run():通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中* 3.currentThread():静态方法,返回执行当前代码的线程* 4.getName():获取当前线程的名字* 5.setName():设置当前线程的名字* 6.yield():释放当前cpu的执行权* 7.join():在线程a中调用线程b的join(),此时线程a就进入阻塞状态,直到线程b完全执行完以后,线程a才* 结束阻塞状态* 8.stop():已过时,不推荐使用。当执行此方法时,强制结束当前线程。* 9.sleep(long millitime): 简写:sleep()* 让当前线程“睡眠”指定的时间(millitime 毫秒)。在指定的时间内,当前线程* 时阻塞状态。* 10.isAlive():判断当前线程是否存活。** @author Dxkstart* @create 2021-05-06 8:54*/public class ThreadMethodTest {public static void main(String[] args) throws InterruptedException {HelloThread thread = new HelloThread("线程一:");//构造器的方式命名线程// thread.setName("线程一:");//给分线程命名thread.start();//给主线程命名Thread.currentThread().setName("主线程;");for (int i = 0; i < 100; i++) {if(i % 2 == 0){System.out.println(Thread.currentThread().getName() + ":" + i);}if(i == 20){thread.join();}}System.out.println(thread.isAlive());}}class HelloThread extends Thread{public HelloThread(String name){super(name);}@Overridepublic void run() {for (int i = 0; i < 100; i++) {if(i % 2 == 0){try {sleep(10);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + ":" + i);}if(i % 20 == 0){this.yield();}}}}
