<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Loading

      【線程安全】線程安全的注意事項

      有哪些場景需要額外注意線程安全

      訪問共享變量或資源

      當在多線程的環境下,多個線程去訪問共享的緩存或者對象時,同時操作會對結果造成不用程度的改變,尤其是在操作上不具備原子性的操作上時會發生這種情況,例如我們之前在【線程安全】 三類線程安全問題章節說到的i + +問題,他其實就屬于一種對共享變量訪問時,由于i + +不是原子性操作,導致結果不是預期的結果。

      依賴時序的操作

      在回到i + +的問題上,i + +在cup執行的時候,其實也是一種線程安全的問題。
      image
      我們再看到這張圖,兩個線程都同時去執行i + +操作,由于i + +不是原子性操作,這樣就會造成第一次i + +還沒完成就被第二個線程拿去i + +這樣就會操作兩次執行的結果一致,但結果就不對了。其實正確的時序性的操作應該是線程1的i + +操作完成之后再去執行i + +的操作。
      說到底,如何保證時序的操作,你就保證他這個操作的原子性就可以了,只要讓他再執行這段代碼的邏輯時,不會被其他的線程搶去執行。

      不同數據之間存在綁定關系

      這種常發生在業務代碼中,比如有兩個線程,一個線程獲取學生的名字,一個線程獲取線程的學號。如果學生的學號變了,學生的名字也會跟著變化,那么這個時候就會容易出現其中一個線程更新不及時,導致學生的名字和學號對不上。導致數據有誤。那在這種情況下,我們也是需要去保持線程的原子性。

      沒有申明自己是線程安全的方法

      這種其實在很多新手開發會發生的錯誤,在使用多線程時,如果使用ArrayList,多個線程同時對它進行數據操作,那么這個時候就會出現數據錯誤,這個原因就是因為它不是線程安全的,如果需要在多線程的環境下去操作List集合,就需要去使用CopyOnWriteArrayList。
      所以在我們日常寫多線程的時候,如果用到公共的方法,尤其是在會對數據進行操作上的方法,請使用線程安全的。

      多線程帶來的性能問題

      上下文切換

      在計算機中,cup的核數其實是遠小于線程數的,所以cup先調度多線程的時候會不斷的去切換線程,以達到多線程看似在同時執行的場景。但是cup在調度線程的時候,會進行上下文的切換,比如線程1切換到線程2,這時就需要讀取線程2的緩存到cpu中,此時的邏輯也會可能跟著線程執行的內容不容而切換執行的邏輯。而這個資源的切換其實全靠cup來完成。這樣就會多出一些性能上的消耗。

      緩存失效

      在每個線程切換完上下文之后,線程的緩存可能會緩存到CPU的高速緩存中,如果當前線程邏輯還沒有執行完成就切換到另外一個線程,那么之前線程的緩存就有可能失效了,那么下次CUP再次調度到這個線程的時候,就又需要重新讀取緩存去執行。那么這個時候也會消耗不少的性能資源。

      協作開銷

      協作開銷通常出現在我們為了線程安全上而做的一些操作,比如對一個共享資源進行訪問,CUP可能為了保證共享資源的準確性,會禁止CPU的指令重排序。還有可能為了出于同步的目的,反復的把線程工作內存的數據刷新到主存中,然后從主存中刷新到其他線程的工作內存中,這種問題如果發生在單線程上將不會有這種狀態,但是處于多線程需要協作,同時又要避免線程安全的問題,就不得不采用上面的方法來犧牲性能。這樣就間接的降低了線程的性能。

      posted @ 2022-01-24 19:43  鄧小白  閱讀(174)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 么公的好大好硬好深好爽视频| 午夜男女爽爽影院免费视频下载| 成人性做爰aaa片免费看| 久久人人97超碰人人澡爱香蕉| 国产精品午夜福利在线观看| 自拍偷拍一区二区三区四| 四虎库影成人在线播放| 欧美国产精品啪啪| 国产精品久久中文字幕网| 日韩精品人妻系列无码av东京 | 中文字幕国产精品综合| 亚洲成av人片天堂网无码 | 亚洲综合国产伊人五月婷| 久久久精品国产精品久久| 2021国产精品视频网站| 欧美三级欧美成人高清| 日本高清免费不卡视频| 人妻中文字幕亚洲一区| 亚洲国产精品久久久天堂麻豆宅男| 亚洲AV午夜成人无码电影| 福泉市| 国产国产人免费人成免费| 久热这里只有精品12| 无码天堂va亚洲va在线va| 久久亚洲女同第一区综合| 97成人碰碰久久人人超级碰oo| 中文www天堂| 亚洲av免费成人精品区| 福利一区二区在线播放| 亚洲日韩av无码一区二区三区人| 四虎国产成人永久精品免费| 中文字幕亚洲制服在线看| 康平县| 免费无码一区无码东京热| 波多野无码中文字幕av专区| 欧美牲交a欧美牲交aⅴ一 | 亚洲VA成无码人在线观看天堂| 97欧美精品系列一区二区| 国产女人看国产在线女人| 亚洲国产综合精品 在线 一区| 国产va免费精品观看精品|