⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 object.java

📁 已经移植好的java虚拟机
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     * be actively competing to synchronize on this object; for example,     * the awakened threads enjoy no reliable privilege or disadvantage in     * being the next thread to lock this object.     * <p>     * This method should only be called by a thread that is the owner     * of this object's monitor. See the <code>notify</code> method for a     * description of the ways in which a thread can become the owner of     * a monitor.     *     * @exception  IllegalMonitorStateException  if the current thread is     *             not the owner of this object's monitor.     * @see        java.lang.Object#notify()     * @see        java.lang.Object#wait()     */    public final native void notifyAll();    /**     * Causes current thread to wait until either another thread invokes the     * {@link java.lang.Object#notify()} method or the     * {@link java.lang.Object#notifyAll()} method for this object, or a     * specified amount of time has elapsed.     * <p>     * The current thread must own this object's monitor.     * <p>     * This method causes the current thread (call it <var>T</var>) to     * place itself in the wait set for this object and then to relinquish     * any and all synchronization claims on this object. Thread <var>T</var>     * becomes disabled for thread scheduling purposes and lies dormant     * until one of four things happens:     * <ul>     * <li>Some other thread invokes the <tt>notify</tt> method for this     * object and thread <var>T</var> happens to be arbitrarily chosen as     * the thread to be awakened.     * <li>Some other thread invokes the <tt>notifyAll</tt> method for this     * object.     * <li>The specified amount of real time has elapsed, more or less.  If     * <tt>timeout</tt> is zero, however, then real time is not taken into     * consideration and the thread simply waits until notified.     * </ul>     * The thread <var>T</var> is then removed from the wait set for this     * object and re-enabled for thread scheduling. It then competes in the     * usual manner with other threads for the right to synchronize on the     * object; once it has gained control of the object, all its     * synchronization claims on the object are restored to the status quo     * ante - that is, to the situation as of the time that the <tt>wait</tt>     * method was invoked. Thread <var>T</var> then returns from the     * invocation of the <tt>wait</tt> method. Thus, on return from the     * <tt>wait</tt> method, the synchronization state of the object and of     * thread <tt>T</tt> is exactly as it was when the <tt>wait</tt> method     * was invoked.     * <p>     * Note that the <tt>wait</tt> method, as it places the current thread     * into the wait set for this object, unlocks only this object; any     * other objects on which the current thread may be synchronized remain     * locked while the thread waits.     * <p>     * This method should only be called by a thread that is the owner     * of this object's monitor. See the <code>notify</code> method for a     * description of the ways in which a thread can become the owner of     * a monitor.     *     * @param      timeout   the maximum time to wait in milliseconds.     * @exception  IllegalArgumentException      if the value of timeout is     *               negative.     * @exception  IllegalMonitorStateException  if the current thread is not     *               the owner of the object's monitor.     * @exception  InterruptedException if another thread has interrupted     *             the current thread.  The <i>interrupted status</i> of the     *             current thread is cleared when this exception is thrown.     * @see        java.lang.Object#notify()     * @see        java.lang.Object#notifyAll()     */    public final native void wait(long timeout) throws InterruptedException;    /**     * Causes current thread to wait until another thread invokes the     * {@link java.lang.Object#notify()} method or the     * {@link java.lang.Object#notifyAll()} method for this object, or     * some other thread interrupts the current thread, or a certain     * amount of real time has elapsed.     * <p>     * This method is similar to the <code>wait</code> method of one     * argument, but it allows finer control over the amount of time to     * wait for a notification before giving up. The amount of real time,     * measured in nanoseconds, is given by:     * <blockquote>     * <pre>     * 1000000*millis+nanos</pre></blockquote>     * <p>     * In all other respects, this method does the same thing as the     * method {@link #wait(long)} of one argument. In particular,     * <tt>wait(0, 0)</tt> means the same thing as <tt>wait(0)</tt>.     * <p>     * The current thread must own this object's monitor. The thread     * releases ownership of this monitor and waits until either of the     * following two conditions has occurred:     * <ul>     * <li>Another thread notifies threads waiting on this object's monitor     *     to wake up either through a call to the <code>notify</code> method     *     or the <code>notifyAll</code> method.     * <li>The timeout period, specified by <code>timeout</code>     *     milliseconds plus <code>nanos</code> nanoseconds arguments, has     *     elapsed.     * </ul>     * <p>     * The thread then waits until it can re-obtain ownership of the     * monitor and resumes execution     * <p>     * This method should only be called by a thread that is the owner     * of this object's monitor. See the <code>notify</code> method for a     * description of the ways in which a thread can become the owner of     * a monitor.     *     * @param      timeout   the maximum time to wait in milliseconds.     * @param      nanos      additional time, in nanoseconds range     *                       0-999999.     * @exception  IllegalArgumentException      if the value of timeout is     *                      negative or the value of nanos is     *                      not in the range 0-999999.     * @exception  IllegalMonitorStateException  if the current thread is not     *               the owner of this object's monitor.     * @exception  InterruptedException if another thread has interrupted     *             the current thread.  The <i>interrupted status</i> of the     *             current thread is cleared when this exception is thrown.     */    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 >= 500000 || (nanos != 0 && timeout == 0)) {            timeout++;        }        wait(timeout);    }    /**     * Causes current thread to wait until another thread invokes the     * {@link java.lang.Object#notify()} method or the     * {@link java.lang.Object#notifyAll()} method for this object.     * In other word's this method behaves exactly as if it simply     * performs the call <tt>wait(0)</tt>.     * <p>     * The current thread must own this object's monitor. The thread     * releases ownership of this monitor and waits until another thread     * notifies threads waiting on this object's monitor to wake up     * either through a call to the <code>notify</code> method or the     * <code>notifyAll</code> method. The thread then waits until it can     * re-obtain ownership of the monitor and resumes execution.     * <p>     * This method should only be called by a thread that is the owner     * of this object's monitor. See the <code>notify</code> method for a     * description of the ways in which a thread can become the owner of     * a monitor.     *     * @exception  IllegalMonitorStateException  if the current thread is not     *               the owner of the object's monitor.     * @exception  InterruptedException if another thread has interrupted     *             the current thread.  The <i>interrupted status</i> of the     *             current thread is cleared when this exception is thrown.     * @see        java.lang.Object#notify()     * @see        java.lang.Object#notifyAll()     */    public final void wait() throws InterruptedException {        wait(0);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -