java wait

站长资源 2022-09-21 08:59www.dzhlxh.cnseo优化

java wait是怎样的呢?下面就让我们一起来了解一下吧:

wait()方法是属于java中的一个方法,它的作用是能够让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的锁。直到其他线程调用此对象的notify()方法或者notifyAll()方法,当前线程被唤醒(也就是进入“就绪状态”)。

说明:

notify()和notifyAll()方法的作用,则是用于唤醒当前对象上的等待线程;notify()方法是唤醒单个线程,而notifyAll()是唤醒所有的线程。

参考范例:

 package com.citi.test.mutiplethread.demo0503;
 
 import java.util.Date;
 
 public class WaitTest {
     public static void main(String[] args) {
         ThreadA t1=new ThreadA("t1");
         System.out.println("t1:"+t1);
         synchronized (t1) {
             try {
                 //启动线程
                 System.out.println(Thread.currentThread().getName()+" start t1");
                 t1.start();
                 //主线程等待t1通过notify唤醒。
                 System.out.println(Thread.currentThread().getName()+" wait()"+ new Date());
                 t1.wait();// 不是使t1线程等待,而是当前执行wait的线程等待
                 System.out.println(Thread.currentThread().getName()+" continue"+ new Date());
             } catch (Exception e) {
                 e.printStackTrace();
             }
         }
     }
 }
 
 class ThreadA extends Thread{
     public ThreadA(String name) {
         super(name);
     }
     @Override
     public void run() {
         synchronized (this) {
             System.out.println("this:"+this);
             try {
                 Thread.sleep(2000);//使当前线程阻塞1秒
             } catch (InterruptedException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
             }
             System.out.println(Thread.currentThread().getName()+" call notify()");
             this.notify();
         }
     }
 }

希望能够帮助到大家。

上一篇:cr2和jpg有什么区别 下一篇:java函数

Copyright © 2016-2025 www.dzhlxh.cn 金源码 版权所有 Power by

网站模板下载|网络推广|微博营销|seo优化|视频营销|网络营销|微信营销|网站建设|织梦模板|小程序模板