java中的sleep和wait的区别?waited怎么用

2025-02-16 18:50:03 0

java中的sleep和wait的区别?waited怎么用

本文目录

java中的sleep和wait的区别

sleep()和wait()的区别Java中的多线程是一种抢占式的机制而不是分时机制。线程主要有以下几种状态:可运行,运行,阻塞,死亡。抢占式机制指的是有多个线程处于可运行状态,但是只有一个线程在运行。当有多个线程访问共享数据的时候,就需要对线程进行同步。线程中的几个主要方法的比较:Thread类的方法:sleep(),yield()等Object的方法:wait()和notify()等每个对象都有一个机锁来控制同步访问。Synchronized关键字可以和对象的机锁交互,来实现线程的同步。由于sleep()方法是Thread类的方法,因此它不能改变对象的机锁。所以当在一个Synchronized方法中调用sleep()时,线程虽然休眠了,但是对象的机锁没有被释放,其他线程仍然无法访问这个对象。而wait()方法则会在线程休眠的同时释放掉机锁,其他线程可以访问该对象。Yield()方法是停止当前线程,让同等优先权的线程运行。如果没有同等优先权的线程,那么Yield()方法将不会起作用。一个线程结束的标志是:run()方法结束。一个机锁被释放的标志是:synchronized块或方法结束。Wait()方法和notify()方法:当一个线程执行到wait()方法时(线程休眠且释放机锁),它就进入到一个和该对象相关的等待池中,同时失去了对象的机锁。当它被一个notify()方法唤醒时,等待池中的线程就被放到了锁池中。该线程从锁池中获得机锁,然后回到wait()前的中断现场。join()方法使当前线程停下来等待,直至另一个调用join方法的线程终止。值得注意的是:线程的在被激活后不一定马上就运行,而是进入到可运行线程的队列中。共同点: 他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数,并返回。不同点: Thread.sleep(long)可以不在synchronized的块下调用,而且使用Thread.sleep()不会丢失当前线程对任何对象的同步锁(monitor);object.wait(long)必须在synchronized的块下来使用,调用了之后失去对object的monitor, 这样做的好处是它不影响其它的线程对object进行操作。举个Java.util.Timer的例子来说明。private void mainLoop() {while (true) {....synchronized(queue) {.....if (!taskFired) // Task hasn’t yet fired; waitqueue.wait(executionTime - currentTime);}}在这里为什么要使用queue.wait(),而不是Thread.sleep(), 是因为暂时放弃queue的对象锁,可以让允许其它的线程执行一些同步操作。如:private void sched(TimerTask task, long time, long period) {synchronized(queue) {...queue.add(task);}}但是正如上篇文章讲到的,使用queue.wait(long)的前提条件是sched()动作执行的时间很短,否则如果很长,那么queue.wait()不能够按时醒来。(2)前面讲了wait/notify机制,Thread还有一个sleep()静态方法,它也能使线程暂停一段时间。sleep与wait的不同点是:sleep并不释放锁,并且sleep的暂停和wait暂停是不一样的。obj.wait会使线程进入obj对象的等待集合中并等待唤醒。但是wait()和sleep()都可以通过interrupt()方法打断线程的暂停状态,从而使线程立刻抛出InterruptedException。如果线程A希望立即结束线程B,则可以对线程B对应的Thread实例调用interrupt方法。如果此刻线程B正在wait/sleep/join,则线程B会立刻抛出InterruptedException,在catch() {} 中直接return即可安全地结束线程。需要注意的是,InterruptedException是线程自己从内部抛出的,并不是interrupt()方法抛出的。对某一线程调用interrupt()时,如果该线程正在执行普通的代码,那么该线程根本就不会抛出InterruptedException。但是,一旦该线程进入到wait()/sleep()/join()后,就会立刻抛出InterruptedException。sleep()、suspend()、resume()方法不推荐使用,推荐使用wait()、notify()、notifyAll()。sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级。(b)正在运行的线程因为其它原因而阻塞。wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。当调用wait()后,线程会释放掉它所占有的“锁标志”,从而使线程所在对象中的其它synchronized数据可被别的线程使用。waite()和notify()因为会对对象的“锁标志”进行操作,所以它们必须在synchronized函数或synchronized block中进行调用。如果在non-synchronized函数或non-synchronized block中进行调用,虽然能编译通过,但在运行时会发生IllegalMonitorStateException的异常。

waited怎么用

waite 的过去时waitedWe waited while he dined. 他在吃饭,我们等他。We waited a good six hours. 我们等了足有六个钟头。 He waited till 8 pm for her. 他等她一直等到晚上八点。He waited three months before going back home. 他等了三个月后才回家。I waited for two solid hours我实足等了两个钟头。

java中的sleep和wait的区别?waited怎么用

本文编辑:admin
: waite,

更多文章:


java类加载器(在java中,什么是类加载器子系统)

java类加载器(在java中,什么是类加载器子系统)

本文目录在java中,什么是类加载器子系统java什么时候bootstrp类加载器会无法加载在java中,什么是类加载器子系统java中的类要加载到jvm中才能使用,那么把java类加载到jvm中的工具,就是类加载器。java内置3种类加载

2025年3月18日 08:00

sample软件(origin9.0软件samples 怎么用)

sample软件(origin9.0软件samples 怎么用)

本文目录origin9.0软件samples 怎么用SampleNew软件如何卸载安卓com.tencent.midas.sample这个软件是什么SAMPLE.exe不是有效的win32应用程序是什么意思origin9.0软件sample

2025年2月21日 00:20

cad是什么专业学的(什么专业可以学习做CAD软件)

cad是什么专业学的(什么专业可以学习做CAD软件)

本文目录什么专业可以学习做CAD软件CAD属于什么专业我是高三学生报什么专业学CAD制图大学什么专业学c语言和cadCAD是哪个专业里的科目要学这个应该选择什么专业CAD软件属于哪个专业CAD是什么专业什么专业可以学习做CAD软件基本的理工

2025年3月21日 01:20

power是什么意思汽车(吉利汽车上powER什么意思)

power是什么意思汽车(吉利汽车上powER什么意思)

本文目录吉利汽车上powER什么意思汽车导航power是什么意思什么车仪表盘上有power汽车上POWER代表什么福特汽车的power是什么意思艾力绅power是什么意思吉利汽车上powER什么意思汽车上POWER代表发动机启动按钮的意思。

2025年2月14日 23:10

sqlite3数据库介绍(谁有关于 SQLite 的数据在文件中如何存储以及索引操作的详细原理介绍吗)

sqlite3数据库介绍(谁有关于 SQLite 的数据在文件中如何存储以及索引操作的详细原理介绍吗)

本文目录谁有关于 SQLite 的数据在文件中如何存储以及索引操作的详细原理介绍吗sqlite是什么样的数据库SQLite数据库的优点是什么db.sqlite3是什么数据库文件sqlite3 数据库 最大支持多少条数据怎么看sqlite3数

2025年3月9日 07:40

模板建站哪家好(汕头模板建站哪家好)

模板建站哪家好(汕头模板建站哪家好)

本文目录汕头模板建站哪家好网站建设哪家好网站建设的公司哪家比较好汕头模板建站哪家好主题邦科技比较好,主要原因如下:操作简单易上手,功能齐全,多种版本供选择,全方位满足企业要求。所谓模板建站就是使用现成的系统或者框架来完成自己的网站搭建!比如

2025年3月6日 03:50

初中免费听课的app(初中生有什么英语学习app)

初中免费听课的app(初中生有什么英语学习app)

本文目录初中生有什么英语学习app孩子初中了,哪个平台的在线课程比较好有哪些免费的网课(学习网站)可供初一(初中生)学习初中生有什么英语学习app初中生有什么英语学习app?强烈推荐大家使用阿卡索外教网!在阿卡索的APP里面可以免费领取到一

2025年3月23日 14:30

check into(辨析look into/check into)

check into(辨析look into/check into)

本文目录辨析look into/check intocheck+into+a+hotel是什么意思check out是什么意思check是什么意思辨析look into/check intolook into这是固定搭配,调查、过问的意思。

2025年4月1日 19:40

linux菜鸟教程视频(嵌入式入门,菜鸟求教,,我看鸟哥的Linux私房菜学,看老段教你学鸟哥的视频教程,用vmware)

linux菜鸟教程视频(嵌入式入门,菜鸟求教,,我看鸟哥的Linux私房菜学,看老段教你学鸟哥的视频教程,用vmware)

本文目录嵌入式入门,菜鸟求教,,我看鸟哥的Linux私房菜学,看老段教你学鸟哥的视频教程,用vmwareLinux 该怎么入门呢嵌入式入门,菜鸟求教,,我看鸟哥的Linux私房菜学,看老段教你学鸟哥的视频教程,用vmware我猜你是装了桌面

2025年4月4日 10:20

win10激活工具永久激活(win10家庭版系统怎么永久激活呢)

win10激活工具永久激活(win10家庭版系统怎么永久激活呢)

本文目录win10家庭版系统怎么永久激活呢怎么看win10是不是永久激活怎么把win10激活变为永久激活如何将批激活的win10变成永久激活有哪些激活win10的工具win10激活工具等是不是单机永久的Win10正式版永久激活工具怎么用wi

2025年3月25日 17:00

源代码索拉卡(索拉卡源代码和灵魂收割者哪个好)

源代码索拉卡(索拉卡源代码和灵魂收割者哪个好)

本文目录索拉卡源代码和灵魂收割者哪个好源代码 索拉卡和黑暗武士 雷恩加尔哪个好lol源代码系列皮肤有几个索拉卡源代码和灵魂收割者哪个好灵魂收割者,我用着源代码 就感觉还没有原皮肤手感好。灵魂收割者的技能打团的时候特效不明显,还能收获奇效。我

2025年3月28日 04:10

ftp是什么格式(FTP是什么)

ftp是什么格式(FTP是什么)

本文目录FTP是什么什么是FTPFTP文件是什么文件FTP指的是什么ftp是什么格式的文件啊,是用什么软件做的啊FTP是什么FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协

2025年3月2日 14:40

circle是什么牌子(F英文打头的男款老板裢18K金是什么牌子的)

circle是什么牌子(F英文打头的男款老板裢18K金是什么牌子的)

本文目录F英文打头的男款老板裢18K金是什么牌子的宠物用品哪个牌子比较有名少女轻奢项链品牌有哪些值得推荐Circle圆基因是什么牌子主要干嘛的中国轻奢饰品项链品牌有哪些F英文打头的男款老板裢18K金是什么牌子的FEND。f开头的牌子便是芬迪

2025年3月13日 02:10

第三方支付接口怎么测试(使用第三分支付怎么测试支付接口)

第三方支付接口怎么测试(使用第三分支付怎么测试支付接口)

本文目录使用第三分支付怎么测试支付接口如何利用PHP语言开发平台第三方支付接口微信支付开发者工具怎么测试微信支付在做支付宝接口或者银行接口开发时候如何去测试调用第三方接口怎么测使用第三分支付怎么测试支付接口网站在线收款时使用第三方接口,有两

2025年2月10日 01:20

少儿免费学编程的网站(少儿编程课是学什么的)

少儿免费学编程的网站(少儿编程课是学什么的)

本文目录少儿编程课是学什么的有什么免费的适合小白学习编程的网站推荐少儿编程课是学什么的少儿编程一般都不会教太复杂的东西,主要是培养孩子的逻辑思维能力和动手能力,学习的也都是简单易懂的东西,比如图形化编程,就是通过搭积木的方式非常直观的使用代

2025年2月18日 09:20

彩虹个人发卡网搭建(如何创建一个自己的发卡网平台,将其作为副业收入如何)

彩虹个人发卡网搭建(如何创建一个自己的发卡网平台,将其作为副业收入如何)

本文目录如何创建一个自己的发卡网平台,将其作为副业收入如何如何搭建QQ代刷网主站如何创建一个自己的发卡网平台,将其作为副业收入如何首先,我们需要准备空间和域名。建议使用阿里云或腾讯云,一些知名的空间提供商。然后我们买一个发卡源代码,这也是免

2025年3月8日 03:50

自定义工作流引擎(求推荐一款软件,能自定义工作流程,且关联上库存管理)

自定义工作流引擎(求推荐一款软件,能自定义工作流程,且关联上库存管理)

本文目录求推荐一款软件,能自定义工作流程,且关联上库存管理考勤软件的功能有哪些在线协同办公ITIL工具如何选择求推荐一款软件,能自定义工作流程,且关联上库存管理推荐您使用一下流程管理软件BPM。国内目前主要的OA还只是停留在无纸化办公,强调

2025年4月5日 19:30

godaddy(godaddy怎么样)

godaddy(godaddy怎么样)

本文目录godaddy怎么样godaddy 怎么申请ssl证书godaddy怎么样GoDaddy是全球最大的域名主机提供商,其主机产品操作简单,性能稳定。你所说的一年74元是真的,只不过需要通过优惠链接进入购买。优惠链接详情可访问GoDad

2025年3月23日 02:50

网站服务器软件(开发Web项目应该选用什么服务器软件)

网站服务器软件(开发Web项目应该选用什么服务器软件)

本文目录开发Web项目应该选用什么服务器软件web服务器软件是干什么用的Java 做的大型网站用什么服务器软件一台服务器 需要装那些软件服务器服务器安全防护软件有那些怎么样能让自己的电脑做成ASP网站服务器都需要哪些软件开发Web项目应该选

2025年3月13日 11:00

comments翻译(any comments怎样翻译好)

comments翻译(any comments怎样翻译好)

本文目录any comments怎样翻译好“备注”的英文是什么“评论”这个词用英文怎么翻译any comments怎样翻译好any comments翻译成中文是:任何意见例句:I was wondering whether you had

2025年3月18日 02:10

近期文章

本站热文

harbor,port,pier的区别?谁能解释“harbour“(港口)与“pier“(码头)的区别
2025-02-22 17:40:03 浏览:18
ibatis foreach(ibatis 批量update操作)
2025-02-10 23:40:06 浏览:7
endless rain(endless rain表达什么情感)
2025-02-14 06:00:02 浏览:6
标签列表

热门搜索