/*
    测试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():判断当前线程是否存活。

    /

    1. package com.atguigu.java1;
    2. /**
    3. * 测试Thread中的常用方法:
    4. * 1.start():启动当前线程;调用当前线程的run()
    5. * 2.run():通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中
    6. * 3.currentThread():静态方法,返回执行当前代码的线程
    7. * 4.getName():获取当前线程的名字
    8. * 5.setName():设置当前线程的名字
    9. * 6.yield():释放当前cpu的执行权
    10. * 7.join():在线程a中调用线程b的join(),此时线程a就进入阻塞状态,直到线程b完全执行完以后,线程a才
    11. * 结束阻塞状态
    12. * 8.stop():已过时,不推荐使用。当执行此方法时,强制结束当前线程。
    13. * 9.sleep(long millitime): 简写:sleep()
    14. * 让当前线程“睡眠”指定的时间(millitime 毫秒)。在指定的时间内,当前线程
    15. * 时阻塞状态。
    16. * 10.isAlive():判断当前线程是否存活。
    17. *
    18. * @author Dxkstart
    19. * @create 2021-05-06 8:54
    20. */
    21. public class ThreadMethodTest {
    22. public static void main(String[] args) throws InterruptedException {
    23. HelloThread thread = new HelloThread("线程一:");//构造器的方式命名线程
    24. // thread.setName("线程一:");//给分线程命名
    25. thread.start();
    26. //给主线程命名
    27. Thread.currentThread().setName("主线程;");
    28. for (int i = 0; i < 100; i++) {
    29. if(i % 2 == 0){
    30. System.out.println(Thread.currentThread().getName() + ":" + i);
    31. }
    32. if(i == 20){
    33. thread.join();
    34. }
    35. }
    36. System.out.println(thread.isAlive());
    37. }
    38. }
    39. class HelloThread extends Thread{
    40. public HelloThread(String name){
    41. super(name);
    42. }
    43. @Override
    44. public void run() {
    45. for (int i = 0; i < 100; i++) {
    46. if(i % 2 == 0){
    47. try {
    48. sleep(10);
    49. } catch (InterruptedException e) {
    50. e.printStackTrace();
    51. }
    52. System.out.println(Thread.currentThread().getName() + ":" + i);
    53. }
    54. if(i % 20 == 0){
    55. this.yield();
    56. }
    57. }
    58. }
    59. }