首页 > 其他分享 >浅析sleep()方法与wait()方法

浅析sleep()方法与wait()方法

时间:2023-03-02 20:55:05浏览次数:42  
标签:Thread 对象 线程 sleep 方法 浅析 wait

为什么 wait() 方法不定义在 Thread 中?

  wait() 是让获得对象锁的线程实现等待,会自动释放当前线程占有的对象锁。每个对象(Object)都拥有对象锁,既然要释放当前线程占有的对象锁并让其进入 WAITING 状态,自然是要操作对应的对象(Object)而非当前的线程(Thread)。类似的问题:为什么 sleep() 方法定义在 Thread 中?因为 sleep() 是让当前线程暂停执行,不涉及到对象类,也不需要获得对象锁。


  sleep() 方法是 Thread 类的静态本地方法,用于让当前线程睡眠一段指定的时间。这个方法的设计目的是为了控制线程的执行时间和顺序,可以用于模拟多线程程序中的一些场景。由于 sleep()方法是针对线程的,因此它被定义为 Thread 类的静态本地方法,可以方便地通过类名来调用。


  wait() 方法是 Object 类的本地方法,用于让当前线程等待另一个线程的通知。这个方法的设计目的是为了实现线程间的协作和同步,可以用于实现线程之间的互斥、通信等。由于 wait() 方法是针对对象的,可以让一个线程等待另一个线程对同一个对象的通知,因此它被定义为 Object类的本地方法,可以在任何对象上调用。


  总的来说,sleep()wait() 方法都是为了控制多线程程序的行为和执行顺序,但它们的使用场景和实现方式不同,因此被定义在不同的类中。这样的设计可以更好地符合面向对象编程的原则,使得每个类都有其特定的作用和职责。同时,也可以让程序员更加清晰地理解和使用这些方法。

标签:Thread,对象,线程,sleep,方法,浅析,wait
From: https://www.cnblogs.com/kinghau/p/17173445.html

相关文章

  • 浅析厂房仓库电气火灾的成因及对策
    陈盼安科瑞电气股份有限公司上海嘉定201801摘要: 文章分析了厂房仓库电气火灾的成因及火灾特点,并有针对性地提出了预防火灾的对策。 关键词: 厂房仓库;电气火灾;成因;预......
  • Waiting for Hack
    无向图最小环(边权为1)现在给一张\(n\)个点\(m\)条边的无向图,求图中最小环的长度。很久以前就想过类似的问题,但是一直犯懒没打。无复杂度保证,只是本彩笔卡不掉而已只......
  • Redis Cluster部署一直卡在Waiting for the cluster to join ......
    1、问题现象 线上部署一个40分片的RedisCluster集群,初始化的时候日志输出一直是Waitingfortheclustertojoin......(大集群初始化的时候会出现时间长)2、问题分析......
  • 浅析大促备战过程中出现的fullGc,我们能做什么?
    作者:京东科技白洋##**前言:**```背景:为应对618、双11大促,消费金融侧会根据零售侧大促节奏进行整体系统备战。对核心流量入口承载的系统进行加固优化,排除系统风险,保证大......
  • 浅析nginx -s reload与service nginx restart区别及linux下nginx加载配置文件异常提示
    1、语法:nginx-ssignal。signal的值如下:stop:fastshutdown,快速的停止nginxquit:gracefulshutdown,不再接受新的请求,等正在处理的请求出完成后在进行停止(优雅的......
  • MySQL 性能优化浅析及线上案例
    作者:京东健康孟飞1、数据库性能优化的意义业务发展初期,数据库中量一般都不高,也不太容易出一些性能问题或者出的问题也不大,但是当数据库的量级达到一定规模之后,如果缺失有......
  • 研究c#异步操作async await状态机的总结
    研究c#异步操作asyncawait状态机的总结 前言#    前一段时间得闲的时候优化了一下我之前的轮子[DotNetCoreRpc]小框架,其中主要的优化点主要是关于RPC异步契约调......
  • 浅析JS代码优化(持续迭代)
    一、代码注释增加代码易读性及可维护性;一个人的工作经验从他的代码注释中可以很容易的看出来。二、拆分复杂的函数当一个消息(函数)需要太长时间才能处理完毕时,W......
  • top的wa,mpstat的%iowait以及pidstat的%wait
    top的wa,mpstat的%iowait以及pidstat的%wait pidstat中,%wait表示进程等待CPU的时间百分比。等待CPU的进程已经在CPU的就绪队列中,处于运行状态。可能是cpu很忙导......
  • 我终于搞懂了async/await、promise和setTimeout的执行顺序
    从一道题目出发今天看到一道面试题,是关于async/await、promise和setTimeout的执行顺序,题目如下:asyncfunctionasync1(){console.log('async1start');awaitasync2(......