javasleep线程
㈠ java的线程的sleep()方法是否占用CPU
不会。
sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会。所以不会占用cpu。
㈡ Java线程中的sleep方法作用是啥,啥时候用此方法
sleep(毫秒数)是Thread类的静态方法。
使用时:Thread.sleep(毫秒数);
如Thread.sleep(1000);该线程睡眠1秒钟,之间此线程什么都不做。
等1秒钟之后,继续余下代码执行。
不过线程是没有保证的。也许1秒钟之后,该线程没有转为可运行状态,也是可能的。
㈢ java中的sleep和wait的区别
sleep和wait的区别:
1、sleep的意思是:睡,睡觉,睡眠。
2、wait的意思是:等候,推迟,延缓等待,耽搁,伺候用餐。
拓展资料
sleep的用法
1、They were exhausted from lack of sleep
由于缺乏睡眠,他们非常疲惫。
2、During the car journey, the baby slept
坐车来的路上,宝宝睡着了。
3、I think he may be ready for a sleep soon.
我想他也许很快就要睡一觉了。
4、I can't get to sleep with all that singing.
那些歌声搅得我无法入睡。
5、I didn't lose too much sleep over that investigation.
我并不太担心那个调查。
wait
1、I walk to a street corner and wait for the school bus
我走到街角等校车。
2、There'll be a car waiting for you
会有辆汽车等你。
3、I want to talk to you, but it can wait
我想和你谈谈,但可以晚点再说。
4、If you think this all sounds very exciting, just wait until you read the book
如果你觉得所有这些听起来令人兴奋,那就等着去读这本书吧。
5、'Wait a minute!' he broke in. 'This is not giving her a fair hearing!'
“等一下,”他插嘴说,“这没有给她一个公平的解释机会!”
㈣ Java多线程中sleep方法中参数为负数和正数有什么区别
首先这个参数是必须>=0的,如果输入负数会抛出异常:
java.lang.IllegalArgumentException: timeout value is negative
再看看源码中这个方法的注释
* Causes the currently executing thread to sleep (temporarily cease
* execution) for the specified number of milliseconds, subject to
* the precision and accuracy of system timers and schelers. The thread
* does not lose ownership of any monitors.
大概翻译过来意思就是
当前线程休眠(暂时中止执行)指定数值(毫秒)的时长,当前线程仅仅是休眠,并不会释放临界资源锁(如果有的话)
㈤ java线程的sleep和yield的区别
1、sleep()
使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。
例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的线程执行完毕后,低优先级的线程才能够执行;但是高优先级的线程sleep(500)后,低优先级就有机会执行了。
总之,sleep()可以使低优先级的线程得到执行的机会,当然也可以让同优先级、高优先级的线程有执行的机会。
2、join()
join()方法使调用该方法的线程在此之前执行完毕,也就是等待该方法的线程执行完毕后再往下继续执行。注意该方法也需要捕捉异常。
3、yield()
该方法与sleep()类似,只是不能由用户指定暂停多长时间,并且yield()方法只能让同优先级的线程有执行的机会。
4、wait()和notify()、notifyAll()
这三个方法用于协调多个线程对共享数据的存取,所以必须在synchronized语句块内使用。synchronized关键字用于保护共享数据,阻止其他线程对共享数据的存取,但是这样程序的流程就很不灵活了,如何才能在当前线程还没退出synchronized数据块时让其他线程也有机会访问共享数据呢?此时就用这三个方法来灵活控制。
wait()方法使当前线程暂停执行并释放对象锁标示,让其他线程可以进入synchronized数据块,当前线程被放入对象等待池中。当调用notify()方法后,将从对象的等待池中移走一个任意的线程并放到锁标志等待池中,只有锁标志等待池中线程能够获取锁标志;如果锁标志等待池中没有线程,则notify()不起作用。
notifyAll()则从对象等待池中移走所有等待那个对象的线程并放到锁标志等待池中
㈥ java中thread.sleep是什么意思
sleep()方法是Thread类里面的,主要的意义就是让当前线程停止执行,让出cpu给其他的线程,但是不会释放对象锁资源以及监控的状态,当指定的时间到了之后又会自动恢复运行状态。
wait()方法是Object类里面的,主要的意义就是让线程放弃当前的对象的锁,进入等待此对象的等待锁定池,只有针对此对象调动notify方法后本线程才能够进入对象锁定池准备获取对象锁进入运行状态。