網際網路併發程式設計之一 執行緒安全01

2021-08-11 17:55:08 字數 700 閱讀 5066

什麼是執行緒安全?

簡單的概括就是,多個執行緒訪問同乙個類(物件或者方法),這個類始終可以表現出正確的行為,那麼這個類(物件或者方法),就是執行緒安全的。

package com.jc.thread;

public class thread01 extends thread

/*** 啟動5個執行緒,訪問同乙個資源

* @param args

*/public static void main(string args)

}

列印結果如下:

t1---3

t3---2

t2---3

t4---1

t5---0

表明,多個執行緒訪問同一資源時,所表現的結果跟我們預期不一致,說明不是執行緒安全的。

引入syncronized,syncronized所修飾的**,我們稱之為「臨界區」或者「互斥區」

當多個執行緒訪問run方法的時候,首先需要拿到資源鎖,這個執行緒會不斷的競爭鎖資源,直到拿到這把鎖為止。(也會有鎖資源競爭的問題)

public synchronized void run()

列印結果如下:

t1---4

t5---3

t4---2

t3---1

t2---0

網際網路併發程式設計(1) 執行緒基礎

1 執行緒安全概念 當多個執行緒訪問某乙個類 物件或方法 時候,這個類始終都能表現出正確的行為,那麼這個類 物件或方法 就是執行緒安全的。2 synchronized 可以在任意物件以及方法上加鎖,而加鎖的這段 稱為互斥區或者臨界區。案例1 不加synchronized package com.wu...

網際網路介面安全程式設計

1 使用者資訊脫敏,包括但不限於密碼 姓名 郵箱 位址 證件號等,必須加密後落庫。方式a md5 salt。md5準確說不是加密,只是資訊摘要,容易受到彩虹表攻擊,這裡一定要加salt使用。方式b 對稱加密。2 防串改。採用https協議。在http的基礎上加上了ssl,如果要破解,要破ca證書 拿...

網際網路併發程式設計(3) 髒讀

內容 資料的髒讀 對於物件的同步和非同步的方法中,我們在設計程式時候要注意問題的整體性,否則就會出現資料不一致情況,最典型的就是髒讀。髒讀的定義 髒讀又稱無效資料的讀出,是指在資料庫訪問中,事務t1將某一值修改,然後事務t2讀取該值,此後t1因為某種原因撤銷對該值的修改,這就導致了t2所讀取到的資料...