多執行緒的安全

2021-07-04 11:20:49 字數 884 閱讀 6369

/**

* 資源共享

1.一塊資源可能會被多個執行緒共享,也就是多個執行緒可能會訪問同一塊資源

2.比如多個執行緒訪問同乙個物件、同乙個變數、同乙個檔案

當多個執行緒引用同乙個資源,會引發問題

*/@implementation viewcontroller

- (void)viewdidload

-(void)touchesbegan:(nsset *)touches withevent:(uievent *)event

- (void)saleticket else }}

// 互斥鎖的優缺點

/*** 優點 有效地防止因為多執行緒搶奪資源造成的資料安全問題

缺點 需要耗費資源

*/// 使用前提

// 多條執行緒搶奪同一塊資源

// 執行緒同步 執行緒同步執行 的意思 多條執行緒在同一條線上執行 (按順序執行)

// 同步 不是 並行

// 為了防止多個執行緒搶奪同一資源造成的資料安全問題

// 原子和非原子性

/*** atomic // 為setter方法加鎖 為了保證執行緒安全,預設為atomic

nonatomic 非原子性 不為setter方法加鎖

應該盡量避免多執行緒搶奪同一塊資源

*//**

* nsthread 1.建立和啟動執行緒的方式 alloc detach(分離) per

*/}/**

* 執行緒 的注意點

1.不要同時開太多的執行緒 (1-3條即可) 不要超過五條

2.主線程 ui執行緒 重新整理顯示ui介面 處理ui控制項的事件

子執行緒 後台執行緒 非同步執行緒

*/

(多執行緒)多執行緒的併發安全

多執行緒併發操作同乙個資源 同步鎖 多執行緒操作的鎖必須唯一 必須搞清楚 哪些 需要同步?那些在操作共享資源的 只要包含非讀的操作,或者根據共享資源進行條件判斷的,就需要同步!同步 塊解決 package com.gc.thread 多執行緒操作共享資源 併發 執行緒安全問題 同步 鎖 相對而言效能...

多執行緒 執行緒安全

原因 當多個執行緒同時共享,同乙個全域性變數或靜態變數。做寫的操作時,可能發生資料衝突問題,也就是執行緒安全問題。但是做讀操作是不會發生資料衝突問題。解決方案 方式一 內建鎖synchronized synchronized保證執行緒原子性,當執行緒進入方法的時候,自動獲取鎖,一旦鎖被其它執行緒獲取...

多執行緒 執行緒安全

public class unsafethread t.start while thread.activecount 1 system.out.println sum 1 從主記憶體中講sum變數複製到執行緒的工作記憶體 2 在工作記憶體中修改變數 1操作 3 將sum變數從執行緒的工作記憶體寫回到...