<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Ordinary hut

    人間一福地,勝似天仙宮
    posts - 61, comments - 50, trackbacks - 0, articles - 1

    2013年4月22日

    java中wait和notify的簡單理解
    1 它們都是Object的屬性;
    2 wait:釋放對象鎖;由于把鎖釋放了,當前線程就會卡住,繼續再等待獲取鎖的機會(也許是干了一半的活后,就把活交出去了,然后等待繼續干活的機會);
    3 notify:告訴其中一個等待的線程(具體哪一個不知道),我已經用完這個對象,你可以繼續用了
    4 它們都要包含在synchronized塊里,只有先鎖住這個對象,才能進行wait、notify操作;

    例子:
    1 定義一個普通對象
    public class MyObj {
        public String name;
    }
    2 主線程類,定義MyObj對象,new兩個線程
    public class TestMain {

        public static MyObj obj = new MyObj();
        
        /**
         * 
    @param args
         
    */
        public static void main(String[] args) throws Throwable {
            new TestMain().myTest();
        }
        
        public void myTest() throws Throwable{
            Test1 test1 = new Test1();
            Test2 test2 = new Test2();
            
            Thread t1 = new Thread(test1); 
            Thread t2 = new Thread(test2); 
            
            t1.start();
            Thread.sleep(1000);//啟動線程1,然后主線程睡眠1秒鐘,再啟動2
            t2.start();
            
        }

    }
    3 定義線程1,:
    public class Test1 implements Runnable{

        @Override
        public void run() {
            synchronized (TestMain.obj) {//占有對象鎖
                try {
                    TestMain.obj.name="1";
                    System.out.println(TestMain.obj.name); //打印出1
                    TestMain.obj.wait();  //釋放對TestMain.obj對象的鎖,同時當前線程立即卡住,陷入等待
                    System.out.println(TestMain.obj.name);//只有線程再次搶到TestMain.obj的鎖后,才會運行
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }

    }
    4 線程2:
    public class Test2 implements Runnable{

        @Override
        public void run() {
            
            synchronized (TestMain.obj) { //當線程1釋放這個對象的鎖時,本線程立即得到
                TestMain.obj.name = "2"; //改值
                TestMain.obj.notify();//通知占用了TestMain.obj且當前是等待的線程(線程1)可以繼續,但是必須等到本synchronized塊執行完畢。
                TestMain.obj.name = "3";
                TestMain.obj.name = "4";
                
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                TestMain.obj.name = "7";//執行完畢,此時線程1被喚醒,會打印出7
            }
        }

    }
    結果顯示1和7


    posted @ 2013-04-27 15:23 landor 閱讀(356) | 評論 (0)編輯 收藏

    轉載 http://supertoffy.blog.163.com/blog/static/16447681820116150115743/


    每個地區都有自己的本地時間,在網上以及無線電通信中時間轉換的問題就顯得格外突出。我自己就經常混淆于此,特地研究了一下,記錄在此以備忘。
    整個地球分為二十四時區,每個時區都有自己的本地時間。在國際無線電通信場合,為了統一起見,使用一個統一的時間,稱為通用協調時(UTC, Universal Time Coordinated)。UTC與格林尼治平均時(GMT, Greenwich Mean Time)一樣,都與英國倫敦的本地時相同。在本文中,UTC與GMT含義完全相同。
    北京時區是東八區,領先UTC八個小時,在電子郵件信頭的Date域記為+0800。如果在電子郵件的信頭中有這么一行:
    Date: Fri, 08 Nov 2002 09:42:22 +0800
    說明信件的發送地的地方時間是二○○二年十一月八號,星期五,早上九點四十二分(二十二秒),這個地方的本地時領先UTC八個小時(+0800,就是東八區時間)。電子郵件信頭的Date域使用二十四小時的時鐘,而不使用AM和PM來標記上下午。
    以這個電子郵件的發送時間為例,如果要把這個時間轉化為UTC,可以使用一下公式:
    UTC + 時區差 = 本地時間
    時區差東為正,西為負。在此,把東八區時區差記為 +0800,
    UTC + (+0800) = 本地(北京)時間 (1)
    那么,UTC = 本地時間(北京時間))- 0800 (2)
    0942 - 0800 = 0142
    即UTC是當天凌晨一點四十二分二十二秒。如果結果是負數就意味著是UTC前一天,把這個負數加上2400就是UTC在前一天的時間。例如,本地(北京)時間是 0432 (凌晨四點三十二分),那么,UTC就是 0432 - 0800 = -0368,負號意味著是前一天, -0368 + 2400 = 2032,既前一天的晚上八點三十二分。
    紐約的時區是西五區,比UTC落后五個小時,記為 -0500:
    UTC + (-0500) = 紐約時間 (3)
    UTC = 紐約時間 + 0500 (4)

    posted @ 2013-04-22 17:04 landor 閱讀(285) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲中文字幕无码永久在线| 亚洲国产成人VA在线观看| 老色鬼久久亚洲AV综合| 最近的2019免费中文字幕| 亚洲无线码一区二区三区| 三年在线观看免费观看完整版中文 | 3d成人免费动漫在线观看| 91久久亚洲国产成人精品性色| 色欲色香天天天综合网站免费| 亚洲综合色丁香麻豆| 日韩亚洲国产高清免费视频| 亚洲高清有码中文字| 日本高清免费不卡在线| 免费夜色污私人影院网站电影| 456亚洲人成影院在线观| 拨牐拨牐x8免费| 香蕉国产在线观看免费| 国产成人A亚洲精V品无码| 免费视频精品一区二区三区| 亚洲无线一二三四区| 国产免费人视频在线观看免费| 五月天婷婷精品免费视频| 久久久久亚洲AV成人无码网站| 8x8×在线永久免费视频| 亚洲人成在久久综合网站| 日本免费一二区在线电影| 国产免费伦精品一区二区三区| 亚洲精品人成在线观看| 成人毛片免费在线观看| jizz免费在线影视观看网站| 爽爽日本在线视频免费| 国产成人1024精品免费| 亚洲一区二区三区亚瑟| 亚洲人成电影在线播放| 99re这里有免费视频精品 | 中文字幕精品亚洲无线码一区| 一区二区三区四区免费视频| 亚洲人成网亚洲欧洲无码| 亚洲国产三级在线观看| 91视频免费观看| 国产精品亚洲片夜色在线|