paulwong

          多線程筆記

          1、同步
          線程初始化時,可以向線程傳入對象,就存在多條同類型的線程存取同一對象,帶來對象的值不同步的問題。
          JVM方案,采用鎖機制,線程的run代碼里,使用同步關鍵字,同步該對象,由于一個對象只有一個鎖,沒取得鎖的線程,就只能處于等待的狀態了,run方法執行完,則鎖就被釋放了,下一個線程是哪個,不確定,由他們進行競爭鎖,誰取得,誰就可以先上。

          2、wait()
          這是Object的方法,執行這個對象的wait()方法并不是去執行該對象里面的wait方法,而是通知JVM暫停鎖定了該對象的線程的run方法,進入等待狀態,同時也釋放該鎖,使得另外的同類線程有機會執行

          3、synchronized
          在方法前加synchronized,相當于線程的run方法中先同步資源對象,再且僅執行一個該方法。

          4、start()
          調用線程的start方法,并不會立即執行run方法,而是由JVM決定JVM里那一堆線程,哪個先執行,再執行run方法

          posted on 2011-12-29 01:26 paulwong 閱讀(227) 評論(0)  編輯  收藏 所屬分類: 性能優化

          主站蜘蛛池模板: 嵩明县| 拜泉县| 信宜市| 澄江县| 双江| 临朐县| 麻栗坡县| 沽源县| 鄂尔多斯市| 甘孜| 宜阳县| 扶沟县| 鹿邑县| 浙江省| 博爱县| 宁城县| 镶黄旗| 卢龙县| 榕江县| 舞阳县| 盘锦市| 长子县| 阿图什市| 拉萨市| 南靖县| 卓尼县| 醴陵市| 巨鹿县| 平顶山市| 沈阳市| 剑阁县| 且末县| 上栗县| 三亚市| 左权县| 都安| 永济市| 曲沃县| 通辽市| 德兴市| 都匀市|