void start() ①使此线程开始执行
    ②Java虚拟机调用此线程的run方法。
    void run() 如果这个线程使用单独的Runnable运行对象构造,则调用该Runnable对象的run方法;否则,此方法不执行任何操作并返回。
    static Thread currentThread() 返回对当前正在执行的线程对象的引用。
    String getName() 返回此线程的名称。
    void setName(String name) 将此线程的名称更改为等于参数 name 。
    Thread(String name) 分配一个新的 Thread对象。
    static void yield() 对调度程序的一个暗示,即当前线程愿意放弃处理器的使用权。
    void join() 等待调用这个方法的线程执行结束才继续当前线程。
    即”插队”
    static void sleep(long millis) 使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行),具体取决于系统定时器和调度程序的精度和准确性。
    需要处理异常
    boolean isAlive() 测试这个线程是否活着。
    int getPriority() 返回此线程的优先级。
    void setPriority(int newPriority) 更改此线程的优先级。
    1. package vip.zdkk.java;
    2. /**
    3. * @author: zdkk
    4. * @create 2022-05-11 21:32
    5. *
    6. * 测试Thread类方法
    7. * 1. start(): 启动当前线程,调用此线程的run()方法
    8. * 2. run(): 通过重写Thread中run(),将线程要执行的操作声明在此方法中
    9. * 3. currentThread(): 静态方法,返回调用当前方法的线程
    10. * 4. getName(): 获取当前线程的名字
    11. * 5. setName(): 设置当前线程的名字
    12. * 6. Thread(String name): 创建线程对象并命名
    13. * 7. yield(): 释放当前CPU的执行权
    14. * 8. join(): 在线程A中调用线程B的join(),此时线程A进行阻塞状态,直至线程B完全执行完后线程A才结束阻塞状态
    15. * 9. stop(): 已过时,执行时强制结束当前线程
    16. * 10. sleep(long millis): 静态方法,强制让当前线程等待(睡眠)指定时间
    17. * 11. isAlive(): 判断当前线程是否还存存活
    18. * 12. getPriority(): 获取当前线程的优先级
    19. * 13. setPriority(): 设置线程的优先级,高优先级的线程要抢占低优先级线程的执行权,但高优先级只是高概率被先执行,不是一定会被先执行
    20. *
    21. *
    22. * 线程优先级
    23. * MIN_PRIORITY = 1
    24. * NORM_PRIORITY = 5
    25. * MAX_PRIORITY = 10
    26. */
    27. public class ThreadMethodTest {
    28. public static void main(String[] args) {
    29. HelloThread h1 = new HelloThread();
    30. h1.setName("线程1");
    31. h1.setPriority(Thread.MIN_PRIORITY);
    32. h1.start();
    33. HelloThread h2 = new HelloThread("线程2");
    34. h2.setPriority(Thread.MAX_PRIORITY);
    35. h2.start();
    36. Thread.currentThread().setName("主线程");
    37. System.out.println(Thread.currentThread().getName());
    38. for (int i = 0; i < 100; i++) {
    39. if ((i % 2) == 0) {
    40. System.out.println(Thread.currentThread().getName() + " " + Thread.currentThread().getPriority() + " " + i);
    41. }
    42. if (i == 20) {
    43. try {
    44. h2.join();
    45. } catch (InterruptedException e) {
    46. e.printStackTrace();
    47. }
    48. }
    49. }
    50. System.out.println(h2.isAlive());
    51. }
    52. }
    53. class HelloThread extends Thread {
    54. public HelloThread(){}
    55. public HelloThread(String name) {
    56. super(name);
    57. }
    58. @Override
    59. public void run() {
    60. // setName("线程1");
    61. for (int i = 0; i < 100; i++) {
    62. if ((i % 2) == 0) {
    63. try {
    64. sleep(10);
    65. } catch (InterruptedException e) {
    66. e.printStackTrace();
    67. }
    68. System.out.println(Thread.currentThread().getName() + " " + getPriority() + " " + i);
    69. }
    70. if ((i % 20) == 0) {
    71. yield();
    72. }
    73. }
    74. }
    75. }