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

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

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

    Synchronize 與 JAVA 內存模型

    每個JAVA對象都有一把所, 當有多個線程同時訪問共享資源的時候, 需要Synchronize 來控制安全性, synchronize 分 synchronize 方法 和synchronize快,使用synchronize塊時, 一定要顯示的獲得該對象的鎖(如synchronize(object))而方法則不需要。

    ?JAVA 的內存模型是對每一個進程有一個主內存, 每個線程有自己的內存, 他們從主內存中取數據, 然后計算, 再存入主內存中。

    ?并發問題如下:如果多個線程同事操作同一數據, A線程從主內存中取的I的值為1, 然后進行加1操作, 這時B線程也取I的值, 進行加2操作, 然后A存入2到主內存中, B也存入, 這樣就覆蓋了A的值(同數據庫中的并發問題一樣)。 解決辦法是用synchronize, 如用synchronized(I)。被synchronize 修飾的方法(塊)把以下三步操作當成一個原子操作:取數據, 操作數據, 存數據。 我們知道原子操作是不可以被打斷的, 所以其保證了數據一致性, 這樣同一時間只有一個線程再執行, 對性能有一定的影響。這也是synchronize的第二個作用:保證統一時間只有一個線程再運行。 當實現SOCKET連接的時候經常用到.

    ?JAVA中規定對非FLOAT, LONG的原始類型的取和存操作為原子操作。 其實就是對一個字(32位)的取,存位原始操作, 因為FLOAT, LONG為兩個字節的長度, 所以其取, 存為非原子操作。 如果想把他們也變為原子操作, 可以用VOLATILE關鍵字來修飾。

    posted on 2006-10-26 19:19 Sheldon Sun 閱讀(411) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2006年10月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    導航

    統計

    常用鏈接

    留言簿(3)

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲av无码成人精品区在线播放| 中文字幕免费在线看电影大全 | 日韩在线不卡免费视频一区| 成人免费一区二区无码视频| 国产成人亚洲精品91专区手机| 亚洲乱色熟女一区二区三区蜜臀| 69免费视频大片| 亚洲成AV人片天堂网无码| 尤物视频在线免费观看| 国产免费观看网站| 亚洲熟妇无码AV| 欧美三级在线电影免费| 亚洲av无码片在线观看| 国产精品视频免费| 99亚洲精品高清一二区| 中文字幕在线视频免费观看| 亚洲国产成人精品91久久久| 国产精品亚洲精品爽爽| 免费大黄网站在线看| 国产亚洲精品91| 亚洲精品tv久久久久| 九一在线完整视频免费观看| 免费人成视频在线观看不卡| 美女扒开尿口给男人爽免费视频| 亚洲AV无码乱码在线观看牲色| 国产高清视频免费在线观看| 亚洲AV电影院在线观看| 日韩精品福利片午夜免费观着| 久久亚洲精品11p| 久久99国产亚洲高清观看首页| 亚洲成人免费网站| 久久精品国产亚洲AV未满十八 | 在线观看免费宅男视频| j8又粗又长又硬又爽免费视频| 亚洲av激情无码专区在线播放| 91精品免费在线观看| 免费人成视频在线播放| 亚洲男人天堂av| 国产三级免费电影| 99精品国产成人a∨免费看| 亚洲最大av资源站无码av网址|