原创 多線程--Lock鎖

Lock鎖 在 jdk1.5 之後,併發包中新增了 Lock 接口(以及相關實現類)用來實現鎖功能,Lock 接口提供了與 synchronized 關鍵字類似的同步功能,但需要在使用時手動獲取鎖和釋放鎖,且在使用上比synchr

原创 多線程--守護線程與非守護線程

多線程–守護線程與非守護線程 1.什麼是守護線程,什麼是非守護線程 什麼是守護線程,和main相關,用戶線程,用戶自己創建的線程,如果主線程停止掉,不會影響用戶線程 用戶線程也叫非守護線程 gc線程 (線程不定時回收垃圾)屬於守護

原创 多線程--Synchronized

1.爲什麼要使用synchronized 在併發編程中存在線程安全問題,主要原因有:1.存在共享數據 2.多線程共同操作共享數據。關鍵字synchronized可以保證在同一時刻,只有一個線程可以執行某個方法或某個代碼塊,同時sy

原创 多線程--三大特性

多線程有三大特性 原子性、可見性、有序性 1.什麼是原子性 即一個操作或者多個操作 要麼全部執行並且執行的過程不會被任何因素打斷,要麼就都不執行。 一個很經典的例子就是銀行賬戶轉賬問題: 比如從賬戶A向賬戶B轉1000元,那麼必然

原创 數據庫--一條SQL查詢語句是如何執行的?

01 | 基礎架構:一條SQL查詢語句是如何執行的? 這是專欄的第一篇文章,我想來跟你聊聊 MySQL 的基礎架構。我們經常說,看一個事兒千萬不要直接陷入細節裏,你應該先鳥瞰其全貌,這樣能夠幫助你從高維度理解問題。同樣,對於 My

原创 多線程--Volatile關鍵字

Volatile關鍵字 首先了解Voiatile關鍵字,需要了解線程的三大特性 1. 原子性: 要麼成功,要麼失敗 2. 可見性: 多個線程同時訪問一個變量時,一個線程修改了這個變量值,其他線程立馬可以看到 3. 有序性: 程序的

原创 多線程--安全

1.線程安全問題 什麼是線程安全問題:當多個線程同時訪問一個全局變量,注意(做寫的操作的時候可能會受到別的線程的干擾),做讀的操作的時候不會發生線程安全問題 如 ++ , – 修改等操作 搶火車票的操作,就會引發線程安全

原创 多線程--多線程創建方式

線程與進程的區別 每個正在系統上運行的程序都是一個進程。每個進程包含一到多個線程。線程是一組指令的集合,或者是程序的特殊段,它可以在程序裏獨立執行。也可以把它理解爲代碼運行的上下文。所以線程基本上是輕量級的進程,它負責在單個程