返回顶部
首页 > 资讯 > 精选 >如何唤醒与等待java中线程
  • 758
分享到

如何唤醒与等待java中线程

java线程ava 2023-05-31 13:05:48 758人浏览 独家记忆
摘要

本篇文章和大家了解一下如何唤醒与等待java中线程。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。wait(), notify(), notifyAll()等方法介绍在Object.java中,定义了wait(), not

本篇文章和大家了解一下如何唤醒与等待java中线程。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

wait(), notify(), notifyAll()等方法介绍

在Object.java中,定义了wait(), notify()和notifyAll()等接口。wait()的作用是让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的。而notify()和notifyAll()的作用,则是唤醒当前对象上的等待线程;notify()是唤醒单个线程,而notifyAll()是唤醒所有的线程。

Object类中关于等待/唤醒的api详细信息如下:

notify()        -- 唤醒在此对象监视器上等待的单个线程。
notifyAll()   -- 唤醒在此对象监视器上等待的所有线程。
wait()                                         -- 让当前线程处于“等待(阻塞)状态”,“直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法”,当前线程被唤醒(进入“就绪状态”)。
wait(long timeout)                    -- 让当前线程处于“等待(阻塞)状态”,“直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量”,当前线程被唤醒(进入“就绪状态”)。
wait(long timeout, int nanos)  -- 让当前线程处于“等待(阻塞)状态”,“直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量”,当前线程被唤醒(进入“就绪状态”)。 

 wait()和notify()示例

下面通过示例演示"wait()和notify()配合使用的情形"。

// WaitTest.java的源码class ThreadA extends Thread{  public ThreadA(String name) {    super(name);  }  public void run() {    synchronized (this) {      System.out.println(Thread.currentThread().getName()+" call notify()");      // 唤醒当前的wait线程      notify();    }  }}public class WaitTest {  public static void main(String[] args) {    ThreadA t1 = new ThreadA("t1");    synchronized(t1) {      try {        // 启动“线程t1”        System.out.println(Thread.currentThread().getName()+" start t1");        t1.start();        // 主线程等待t1通过notify()唤醒。        System.out.println(Thread.currentThread().getName()+" wait()");        t1.wait();        System.out.println(Thread.currentThread().getName()+" continue");      } catch (InterruptedException e) {        e.printStackTrace();      }    }  }}

--结束END--

本文标题: 如何唤醒与等待java中线程

本文链接: https://lsjlt.com/news/226017.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何唤醒与等待java中线程
    本篇文章和大家了解一下如何唤醒与等待java中线程。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。wait(), notify(), notifyAll()等方法介绍在Object.java中,定义了wait(), not...
    99+
    2023-05-31
    java 线程 ava
  • Java项目中如何等待与唤醒线程
    这期内容当中小编将会给大家带来有关Java项目中如何等待与唤醒线程,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。DEMO1: wait() 与 notify()public class Test { st...
    99+
    2023-05-31
    java 线程 ava
  • Java多线程之等待唤醒机制及案例代码演示
    生产者和消费者(等待唤醒机制) 等待唤醒机制常见方法代码演示等待唤醒机制(阻塞队列方式实现)额外扩展 等待唤醒机制 生产者和消费者是一个十分经典的多线程协作模式 举个小栗子来说明一下消费者...
    99+
    2023-10-25
    java 多线程 等待唤醒机制 thread Runnable notify wait
  • win10待机如何远程唤醒
    这篇文章主要介绍“win10待机如何远程唤醒”,在日常操作中,相信很多人在win10待机如何远程唤醒问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win10待机如何远程唤醒”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-04
  • win10待机唤醒花屏如何
    这篇“win10待机唤醒花屏如何”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win10待机唤醒花屏如何”文章吧。解决方法:...
    99+
    2023-07-04
  • 如何在Java项目中实现多线程的阻塞与唤醒
    如何在Java项目中实现多线程的阻塞与唤醒?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。java线程的阻塞及唤醒 1. sleep() 方法: sleep(…毫...
    99+
    2023-05-31
    java 多线程 ava
  • Java多线程之线程通信生产者消费者模式及等待唤醒机制代码详解
    前言前面的例子都是多个线程在做相同的操作,比如4个线程都对共享数据做tickets–操作。大多情况下,程序中需要不同的线程做不同的事,比如一个线程对共享变量做tickets++操作,另一个线程对共享变量做tickets–操作,这就是大名鼎鼎...
    99+
    2023-05-30
    java 多线程 ava
  • Java线程中的notifyAll唤醒操作(推荐)
    注意:java中的notifyAll和notify都是唤醒线程的操作,notify只会唤醒等待池中的某一个线程,但是不确定是哪一个线程,notifyAll是针对指定对象里面的所有线程执行唤醒操作,指定对象一旦唤醒成功。则会立即加入线程的资源...
    99+
    2023-05-31
    java 线程 notifyall
  • win10待机唤醒后白屏如何解决
    这篇文章主要讲解了“win10待机唤醒后白屏如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win10待机唤醒后白屏如何解决”吧!解决方法:首先在键盘上按下组合键【Ctrl】+【shi...
    99+
    2023-07-04
  • 详解C# 线程的挂起与唤醒
    目录一,AutoResetEvent类二,ManualResetEvent     如果说C#和C++有什么不同,博主不得不说,对于异步的支持程度是C#...
    99+
    2024-04-02
  • java中的线程怎么实现等待与通知
    这篇文章给大家介绍java中的线程怎么实现等待与通知,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。关于等待/通知,要记住的关键点是:必须从同步环境内调用wait()、notify()、notifyAll()方法。线程不...
    99+
    2023-05-31
    java 线程 ava
  • win10待机唤醒桌面空白如何解决
    今天小编给大家分享一下win10待机唤醒桌面空白如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。解决方法:首先查看是否...
    99+
    2023-07-04
  • Linux中无线网卡如何配置无线唤醒
    这篇文章给大家分享的是有关Linux中无线网卡如何配置无线唤醒的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。我有一台用于备份我的所有设备的网络存储(NAS)服务器。然而当我备份我的 Linux 笔记本时遇到了困难...
    99+
    2023-06-27
  • Java线程通信及线程虚假唤醒知识总结
    线程通信 线程在内部运行时,线程调度具有一定的透明性,程序通常无法控制线程的轮换执行。但Java本身提供了一些机制来保证线程协调运行。 假设目前系统中有两个线程,分别代表存款和取钱。...
    99+
    2024-04-02
  • Java怎么使用Condition实现精准唤醒线程
    这篇文章主要讲解了“Java怎么使用Condition实现精准唤醒线程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么使用Condition实现精准唤醒线程”吧!Condition...
    99+
    2023-07-05
  • Java使用Condition实现精准唤醒线程详解
    目录Condition简要介绍Condition里的主要方法使用Condition的DemoCondition简要介绍 Condition是一个接口,创建Condition的实例不能...
    99+
    2023-02-28
    Java Condition精准唤醒线程 Java Condition唤醒线程 Java Condition
  • win10待机后无法唤醒固态硬盘如何解决
    今天小编给大家分享一下win10待机后无法唤醒固态硬盘如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。win10待机后...
    99+
    2023-07-01
  • 怎么理解Java线程间通信与等待/通知机制
    本篇内容主要讲解“怎么理解Java线程间通信与等待/通知机制”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解Java线程间通信与等待/通知机制”吧!一、概念简介1、线程通信在操作系统中,线...
    99+
    2023-06-02
  • Win10 系统待机后无法唤醒固态硬盘如何解决
    本篇文章为大家展示了Win10 系统待机后无法唤醒固态硬盘如何解决,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。方法步骤打开设备,进入Windows页面,并选取“系统”选项;然后,在【电源和睡眠】一...
    99+
    2023-06-08
  • Java父线程等待所有子线程退出的示例分析
    这篇文章主要介绍了Java父线程等待所有子线程退出的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。实例如下:static void testLoc...
    99+
    2023-05-30
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作