温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java中wait的作用是什么

发布时间:2021-04-21 17:11:35 来源:亿速云 阅读:456 作者:Leah 栏目:编程语言

本篇文章给大家分享的是有关java中wait的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

Java可以用来干什么

Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企业级应用开发;6. Java大数据开发;7.游戏开发等。

1.说明

调用wait()方法后,线程会放到等待池当中,等待池的线程是不会去竞争同步锁。只有调用了notify()或notifyAll()后等待池的线程才会开始去竞争锁

2.语法

public final void wait()

3.参数

4.返回值

没有返回值。

5.使用注意

(1)必须在synchronized 修饰的同步代码块中调用

(2)会释放cpu资源和释放同步锁(类锁和对象锁)

(3)调用wait()后必须调用notify()或notifyAll()后线程才会从等待池进入到锁池,当我们的线程竞争得到同步锁后就会重新进入绪状态等待cpu资源分配

(4)是Object类的方法

6.实例

    /**
     * 当前线程必须是该对象锁的拥有者
     *
     * @param timeout 要等待的最长时间 如果timeout为0,则必须被notify唤醒
     * @throws  IllegalArgumentException 如果超时值是负数,或者不在0-999999范围内
     * @throws  IllegalMonitorStateException 如果当前线程不是此对象锁的所有者
     * @throws  InterruptedException 如果当前线程等待通知之前或者正在等待通知时,任何线程中断了当前线程,抛出该异常并解除线程的中断状态
     */
 public final native void wait(long timeout) throws InterruptedException;
/**
     * @param timeout 毫秒
     * @param nanos 微毫秒
     */
 public final void wait(long timeout, int nanos) throws InterruptedException {
 	if (timeout < 0) {
 	throw new IllegalArgumentException("timeout value is negative");
        }
        if (nanos < 0 || nanos > 999999) {
            throw new IllegalArgumentException(
                                "nanosecond timeout value out of range");
        }
        if (nanos > 0) {
            timeout++;
        }
        wait(timeout);
    }
    
    public final void wait() throws InterruptedException {
        wait(0);
}

以上就是java中wait的作用是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI