iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >JAVA线程sleep()和wait()详解及实例
  • 407
分享到

JAVA线程sleep()和wait()详解及实例

java线程sleep()wait() 2023-05-31 14:05:07 407人浏览 薄情痞子
摘要

JAVA线程sleep()和wait()详解及实例sleepsleep是Thread的一个静态(static)方法。使得Runnable实现的线程也可以使用sleep方法。而且避免了线程之前相互调用sleep()方法,引发死锁。sleep(

JAVA线程sleep()和wait()详解及实例

sleep

sleep是Thread的一个静态(static)方法。使得Runnable实现的线程也可以使用sleep方法。而且避免了线程之前相互调用sleep()方法,引发死

sleep()执行时需要赋予一个沉睡时间。在沉睡期间(阻塞线程期间),CPU会放弃这个线程,执行其他任务。当沉睡时间到了之后,该线程会自动苏醒,不过此时线程不会立刻被执行,而是要等CPU分配资源,和其他线程进行竞争。

此外如果这个线程之前获取了一个机锁,在沉睡期间,这个机锁不会释放。其他等待这个机锁的程序,必须等待这个线程醒来,且执行完后才能运行。

sleep相关代码

public class ThreadTest2 {  public static void main(String[] args){    System.out.println("begin our test");    ThreadSleep sleep = new ThreadSleep();    try {      Thread thread1 = new Thread(sleep,"路人甲");      Thread thread2 = new Thread(sleep,"路人乙");      thread1.start();      thread2.start();    }catch(Exception e){      e.printStackTrace();    }    System.out.println("test is over");  }} class ThreadSleep implements Runnable{   int count = 0;   @Override   public void run(){     System.out.println(Thread.currentThread().getName() + " say : hello sleep !!");     count();   }   public void count(){     while(count < 20) {         System.out.println(Thread.currentThread().getName() + " say : count is " + count);         try {           count++;           Thread.sleep(100);         } catch (Exception e) {           e.printStackTrace();         }     }   }}

--结束END--

本文标题: JAVA线程sleep()和wait()详解及实例

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JAVA线程sleep()和wait()详解及实例
    JAVA线程sleep()和wait()详解及实例sleepsleep是Thread的一个静态(static)方法。使得Runnable实现的线程也可以使用sleep方法。而且避免了线程之前相互调用sleep()方法,引发死锁。sleep(...
    99+
    2023-05-31
    java线程 sleep() wait()
  • java线程sleep和wait的区别有哪些
    Java中的线程sleep和wait方法有以下区别:1. 调用wait方法的线程会放弃自己的锁,并进入等待状态,直到其他线程调用相同...
    99+
    2023-09-25
    java
  • Java线程中的sleep方法详解
    在Java线程中,sleep方法是一个线程的静态方法,用于暂停当前线程的执行一段时间。sleep方法的语法如下:```javapub...
    99+
    2023-09-14
    Java
  • Java多线程wait()和notify()方法详细图解
    目录一、线程间等待与唤醒机制二、等待方法wait()三、唤醒方法notify()四、关于wait和notify内部等待问题(重要)五、完整代码(仅供测试用)总结一、线程间等待与唤醒机...
    99+
    2022-11-13
    多线程wait notify 线程的wait和notify 线程notify和wait区别
  • Java多线程死锁问题详解(wait和notify)
    目录一. synchronnized 的特性1. 互斥性2. 可重入性二. 死锁问题1. 什么是死锁2. 死锁的四个必要条件3. 常见的死锁场景及解决3.1 不可重入造成的死锁3.2...
    99+
    2023-01-05
    Java多线程死锁 java死锁的原因及解决方法 java多线程死锁问题
  • Java中wait与sleep的区别讲解(wait有参及无参区别)
    目录1. wait() 与wait( long timeout ) 区别2. wait(0) 与 sleep(0)区别3. wait 和sleep 释放代码4. wait 与 sle...
    99+
    2024-04-02
  • Java详细分析sleep和wait方法有哪些区别
    目录一、sleep和wait方法的区别二、wait方法wait方法的使用wait结束等待的条件三、notify和notifyAll方法一、sleep和wait方法的区别 根本区别:s...
    99+
    2024-04-02
  • Java Thread之Sleep()案例详解
    一、API简介 Thread.sleep()是Thread类的一个静态方法,使当前线程休眠,进入阻塞状态(暂停执行),如果线程在睡眠状态被中断,将会抛出IterruptedExcep...
    99+
    2024-04-02
  • java面试突击之sleep和wait有什么区别详析
    目录前言区别一:语法使用不同区别二:所属类不同区别三:唤醒方式不同区别四:释放锁资源不同sleep 不释放锁wait 释放锁区别五:线程进入状态不同总结前言 sleep 方法和 wa...
    99+
    2024-04-02
  • Java线程通信之wait-notify通信方式详解
    目录1.线程通信的定义2.为什么需要wait-notify3.wait方法和notify方法1、对象的wait()方法2、对象的notify()方法4.wait方法和notify方法...
    99+
    2024-04-02
  • java多线程编程技术详解和实例代码
     java多线程编程技术详解和实例代码1.   Java和他的API都可以使用并发。可以指定程序包含不同的执行线程,每个线程都具有自己的方法调用堆栈和程序计数器,使得线程在与其他线程并发地执行能够共享程序范围内...
    99+
    2023-05-31
    java 多线程 编程
  • java多线程wait()和notify()如何使用
    小编给大家分享一下java多线程wait()和notify()如何使用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!注:wait()和notify()应当用在synchronized内package com.te...
    99+
    2023-06-02
  • Java多线程求和实例讲解
    本篇内容主要讲解“Java多线程求和实例讲解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java多线程求和实例讲解”吧!编写一个启动100个线程的程序,每个线程给一个初值为0的变量sum加1,...
    99+
    2023-06-17
  • Java使用wait和notify实现线程之间的通信
    目录一. 为什么需要线程通信二. wait和notify方法1. wait()方法2. notify()方法 3. notifyAll()方法三. 使用wait和notif...
    99+
    2024-04-02
  • Java Process详解及实例
    RuntimeJava可以通过Runtime来调用其他进程,如cmd命令,shell文件的执行等。可以应该该类设置系统时间,执行shell文件。此处记录几个有用应用如下。设置本地时间可以调用cmd /c date命令,完成本地时间设置,不过...
    99+
    2023-05-31
    java process ava
  • python线程及多线程实例讲解
    进程和线程一、进程进程是程序的分配资源的最小单元;一个程序可以有多个进程,但只有一个主进程;进程由程序、数据集、控制器三部分组成。二、线程线程是程序最小的执行单元;一个进程可以有多个线程,但是只有一个主线程;线程切换分为两种:一种是I/O切...
    99+
    2023-01-31
    线程 多线程 实例
  • Python的进程,线程和协程实例详解
    目录相关介绍实验环境进程多进程用进程池对多进程进行操作线程使用_thread模块实现使用 threading 模块实现协程使用asyncio模块实现总结相关介绍 Python是一种跨...
    99+
    2024-04-02
  • 实例详解Python的进程,线程和协程
    目录前言前提条件相关介绍实验环境进程多进程用进程池对多进程进行操作线程使用_thread模块实现使用 threading 模块实现协程使用asyncio模块实现总结前言 本文用Pyt...
    99+
    2024-04-02
  • Java通过wait()和notifyAll()方法实现线程间通信
    本文实例为大家分享了Java实现线程间通信的具体代码,供大家参考,具体内容如下Java代码(使用了2个内部类):package Threads;import java.util.LinkedList;public class ProdCon...
    99+
    2023-05-31
    java wait notifyall
  • Java多线程之死锁问题,wait和notify
    文章目录 一. synchronnized 的特性1. 互斥性2. 可重入性 二. 死锁问题1. 什么是死锁2. 死锁的四个必要条件3. 常见的死锁场景及解决3.1 不可重入造成的死锁3....
    99+
    2023-09-13
    java 死锁 wait notify synchronized
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作