创建多线程_你真的了解多线程吗?
前言
多線程一提起來,會讓大多數人頭皮發麻,總想避而不談,因為它確實比較晦澀難懂,并且大多時候,都沒有直接用到多線程。
真假多線程
- 假多線程
單核CPU,同一時間處理器只會處理一段邏輯,只不過線程之間切換得比較快,看著像多個線程" 同時" 運行罷了。使用多線程時,在真實系統環境下不能并行,只能通過切換時間片的方式交替進行,從而并發執行任務.
- 真多線程
能讓你的多段邏輯同時工作,多線程,可以真正發揮出多核 CPU 的優勢來,達到充分利用 CPU 的目的.使用多線程時,真正的并行.
線程的一生(原諒我這一生愛自由)
線程在生命周期中并不是固定處于某一個狀態而是隨著代碼的執行在不同狀態之間切換.
多線程惹的禍(我承認都是線程惹的禍,那樣的高效太誘惑)
- 線程安全問題
多線程下存在共享資源。
解決方案:
1)將不必要的共享變量變成局部變量來使用。
2)使用synchronized關鍵字同步代碼塊,或者使用Lock為操作進行加鎖。
3)使用ThreadLocal為每一個線程建立一個變量的副本,各個線程間獨立操作,互 不影響
- 性能問題
線程的生命周期開銷是非常大的,一個線程的創建到銷毀都會占用大量的內存。同時如果不合理的創建了多個線程,cup的處理器數量小于了線程數量,那么將會有很多的線程被閑置,閑置的線程將會占用大量的內存,為垃圾回收帶來很大壓力,同時cup在分配線程時還會消耗其性能
解決方案: 利用線程池創建線程。
總結
以上是生活随笔為你收集整理的创建多线程_你真的了解多线程吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 滑动轮播_这样运营轮播图可以增加订单
- 下一篇: 不刷新页面的tab_SwiftUI小技巧