gpt4 book ai didi

java - 执行线程是否通过同时执行 wait() 和 join() 进入 "waiting"状态?

转载 作者:行者123 更新时间:2023-11-30 06:32:20 25 4
gpt4 key购买 nike

有 3 种状态的线程处于 Activity 状态但既不运行也不可运行:-

  1. sleep
  2. 已阻止
  3. 正在等待

当线程执行 sleep() 方法时,它会在其参数指定的时间段(比如几毫秒)内从运行状态进入休眠状态。

当一个线程正在等待某个对象上的锁,而该对象由于同步方法或 block 而被其他线程获取时,它会被该线程阻塞。

那么,我们可以说一个线程在其他线程上执行 wait() 时进入 WAITING 状态吗?

在某个线程上调用 join() 也是如此。

那么,我们可以说 wait()(来自 java.lang.Object)和 join()(来自 java.lang.Thread)都将线程的状态转变为 WAITING 吗?

最佳答案

这在 javadoc of Thread.State 中有描述:

public static final Thread.State WAITING

Thread state for a waiting thread. A thread is in the waiting state due to calling one of the following methods:

    Object.wait with no timeout
Thread.join with no timeout
LockSupport.park

A thread in the waiting state is waiting for another thread to perform a particular action. For example, a thread that has called Object.wait() on an object is waiting for another thread to call Object.notify() or Object.notifyAll() on that object. A thread that has called Thread.join() is waiting for a specified thread to terminate.

关于java - 执行线程是否通过同时执行 wait() 和 join() 进入 "waiting"状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8818501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com