Java並發學習之五——線程的睡眠和恢複

來源:互聯網
上載者:User

標籤:線程睡眠

本文是學習網路上的文章時的總結,感謝大家無私的分享。

1、Thread類的sleep方法,可以使線程睡眠。此方法接收一個整數作為參數,表示線程暫停啟動並執行毫秒數。在調用sleep方法後,當時間結束時,JVM會安排他們CPU時間,線程會繼續按指令執行。

       另一種可能是使用一個有TimeUnit列舉元素的sleep方法,使用線程類的sleep方法讓當前線程睡眠,但是它接收的參數單位後會轉成毫秒的。

2、當你調用sleep()方法,Thread離開CPU並在一段時間內停止運行。在這段時間內,他是不消耗CPU時間的,使用可以執行其他任務,

但它並不釋放對象鎖。

當Thread是睡眠和中斷的時候,那方法會立刻拋出InterruptedException異常並不會一直等到睡眠時間過去。

3、Java並發API有另一種方法能讓線程對象離開CPU,它是yield()方法,它向JVM表示線程對象可以讓CPU執行其他任務。JVM不保證遵守請求,通常它只是用來調試。只是不能由使用者指定暫停多長時間,並且yield()方法只能讓同優先順序的線程有執行的機會。

package chapter;import java.util.Date;import java.util.concurrent.TimeUnit;/** *  * <p> * Description:  * </p> * @author zhangjunshuai * @version 1.0 * Create Date: 2014-8-13 下午8:47:30 * Project Name: Java7Thread * * <pre> * Modification History:   *             Date                                Author                   Version          Description  * -----------------------------------------------------------------------------------------------------------   * LastChange: $Date::             $      $Author: $          $Rev: $          * </pre> * */public class FileClock implements Runnable{@Overridepublic void run() {for (int i = 0; i < 10; i++) {System.out.printf("%s\n", new Date());try {TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) {System.out.printf("The FileClock has been interrupted");}}}}

調用類

package chapter;import java.util.concurrent.TimeUnit;public class Main5 {/** * <p> * </p> * @author zhangjunshuai * @date 2014-8-13 下午6:34:34 * @param args */public static void main(String[] args) {FileClock clock = new FileClock();Thread thread = new Thread(clock);thread.start();try {TimeUnit.SECONDS.sleep(5);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}thread.interrupt();}}

參考:

並髮網

java之yield(),sleep(),wait()區別詳解-備忘筆記

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.