[問題] 多線程及靜態變數的問題
開發平台(Platform): (Ex: Win10, Linux, ...)
win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
qt
全局靜態變數
static vector<Class_A> Class_A_List;
static int fun1()
{
//使用到Class_A_List
}
static int fun2()
{
//使用到Class_A_List
}
我在程式中使用了多線程
每個線程在啟動時會創建
Class_A Obj; //會有很多個
並且加入到全局靜態變數內
Class_A_List.push_back(Obj);
並使用靜態函數
fun1();
fun2();
PS:線程各自有Obj
只是全部儲存在Class_A_List
調用fun1()及fun2得去Class_A_List找出Obj
去讀寫Obj
我目前使用線程一個執行完再接一個不會出錯
第一個線程還沒結束 就啟動第二個線程
程式就會終止
問題
請問一下
1.多線程能同時使用同一個靜態函數嗎?
2.多線程能同時使用同一個全局靜態變數 如上面的Class_A_List?
即便它們是各自讀取修改各自的Obj
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.228.53.160 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1652241784.A.B00.html
※ 編輯: su27 (125.228.53.160 臺灣), 05/11/2022 12:04:22
→
05/11 12:15,
2年前
, 1F
05/11 12:15, 1F
→
05/11 12:16,
2年前
, 2F
05/11 12:16, 2F
寫錯了
→
05/11 12:38,
2年前
, 3F
05/11 12:38, 3F
※ 編輯: su27 (125.228.53.160 臺灣), 05/11/2022 12:43:01
推
05/11 13:13,
2年前
, 4F
05/11 13:13, 4F
→
05/11 13:25,
2年前
, 5F
05/11 13:25, 5F
→
05/11 13:29,
2年前
, 6F
05/11 13:29, 6F
→
05/11 13:29,
2年前
, 7F
05/11 13:29, 7F
→
05/11 13:29,
2年前
, 8F
05/11 13:29, 8F
→
05/11 22:38,
2年前
, 9F
05/11 22:38, 9F
推
05/12 00:49,
2年前
, 10F
05/12 00:49, 10F
→
05/12 00:49,
2年前
, 11F
05/12 00:49, 11F
→
05/12 00:55,
2年前
, 12F
05/12 00:55, 12F
→
05/12 00:55,
2年前
, 13F
05/12 00:55, 13F
→
05/12 00:56,
2年前
, 14F
05/12 00:56, 14F
→
05/12 01:00,
2年前
, 15F
05/12 01:00, 15F
→
05/13 11:25,
2年前
, 16F
05/13 11:25, 16F
→
05/13 11:25,
2年前
, 17F
05/13 11:25, 17F
推
05/14 09:38,
2年前
, 18F
05/14 09:38, 18F
→
05/14 09:39,
2年前
, 19F
05/14 09:39, 19F
推
05/15 20:15,
2年前
, 20F
05/15 20:15, 20F
→
05/15 20:15,
2年前
, 21F
05/15 20:15, 21F
→
05/15 20:15,
2年前
, 22F
05/15 20:15, 22F
→
05/15 20:15,
2年前
, 23F
05/15 20:15, 23F
→
05/15 20:15,
2年前
, 24F
05/15 20:15, 24F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章