Thread类的方法

简介: Thread类的方法

Thread类的方法

  • static void yield():线程让步
  • 暂停当前正在执行的线程,把执行机会让给优先级相同或更高的线程
  • 若队列中没有同优先级的线程,忽略此方法
  • join() :当某个程序执行流中调用其他线程的 join() 方法时,调用线程将 被阻塞,直到 join() 方法加入的 join 线程执行完为止
  • static void sleep(long millis):(指定时间:毫秒)
  • 令当前活动线程在指定时间段内放弃对CPU控制,使其他线程有机会被执行,时间到后 重排队。
  • 抛出InterruptedException异常
  • stop(): 强制线程生命期结束,不推荐使用
  • boolean isAlive():返回boolean,判断线程是否还活着

线程的调度

调度策略

  • 时间片
  • image.png
  • 抢占式:高优先级的线程抢占CPU

Java的调度方法

  • 同优先级线程组成先进先出队列(先到先服务),使用时间片策略
  • 对高优先级,使用优先调度的抢占式策略

线程的优先级

线程的优先级等级

  • MAX_PRIORITY:10
  • MIN _PRIORITY:1
  • NORM_PRIORITY:5

涉及的方法

  • getPriority() :返回线程优先值
  • setPriority(int newPriority) :改变线程的优先级

线程创建时继承父线程的优先级 ,低优先级只是获得调度的概率低,并非一定是在高优先级线程之后才被调用

线程的分类

Java中的线程分为两类:一种是守护线程,一种是用户线程。

  • 它们在几乎每个方面都是相同的,唯一的区别是判断JVM何时离开。
  • 守护线程是用来服务用户线程的,通过在start()方法前调用 thread.setDaemon(true)可以把一个用户线程变成一个守护线程。
  • Java垃圾回收就是一个典型的守护线程。
  • 若JVM中都是守护线程,当前JVM将退出。
相关文章
|
3月前
|
算法 Java 调度
深入理解 Thread 类的 Yield 方法
【8月更文挑战第22天】
125 4
Thread 类中的 start () 和 run () 方法的区别
Thread 类中的 start () 和 run () 方法的区别
63 0
|
6月前
|
Java 程序员 调度
Thread类及常见方法
Thread类及常见方法
|
Java 程序员 调度
了解Thread类的其他一些方法及常见属性
了解Thread类的其他一些方法及常见属性
59 0
Thread 类的基本用法
比较推荐:使用 lambda 表达式创建线程的时候不用重写 run 方法。 不需要显式重写run方法的原因是因为线程的目标方法已经在Lambda表达式中定义了。Lambda表达式是一种用于创建匿名函数的语法糖,它可以将一个方法(或一段代码块)包装为一个函数对象。当您使用Lambda表达式创建线程时,Lambda表达式的内容会被视为线程执行的任务,这个任务会自动成为run方法的实现。
75 0
|
调度
Thread 类的基本方法
Thread 类的基本方法
84 0