多執行緒程式設計學習筆記(六)
執行緒區域性儲存(tls)
存放區域性儲存步驟:
1、申請資料槽
localdatastoreslot slot = thread.getnameddataslot("para");
如果不存在名為para的資料槽,將分配乙個所有執行緒均可用的para資料槽
2、往資料槽存放資料
mypara para = new mypara();
para.i = i;
thread.setdata(slot,para);
3、如有必要,釋放資料槽
thread.freenameddataslot("para");
釋放資料槽要小心,該操作將使所有執行緒存放在被釋放的資料槽中的資料丟失。
讀取區域性儲存步驟:
1、根據名字子執行緒區域性儲存中獲取特定的資料槽
localdatastoreslot slot = thread.getnameddataslot("para");
2、從資料槽獲取資料
把下面**生成mydll.dll
using system;
using system.threading;
namespace demo
console.writeline("/n在當前應用域中不能獲得其他應用域中的當前執行緒的區域性儲存");
demo.mydemoobj obj2 = new demo.mydemoobj();
obj2.demotls();
console.writeline("/n在當前應用域中設定當前執行緒的區域性儲存,並獲得");
obj2.settls(200);
obj2.demotls();
console.writeline("/n當前應用域中設定當前的執行緒的區域性儲存不會改變當前執行緒在另乙個應用域中的區域性儲存");
obj.demotls();
}
Posix多執行緒程式設計學習筆記(六) 共享記憶體(3)
五 共享記憶體區的寫入和讀出 上面我們介紹了 mmap 函式,下面我們就可以通過這些函式,把程序對映到共享記憶體區。然後我們就可以通過共享記憶體區進行程序間通訊了。下面是共享記憶體區寫入的例子 shm write.h寫入 讀出共享記憶體區 include include include includ...
Posix多執行緒程式設計學習筆記(六) 共享記憶體(2)
三 posix 共享記憶體函式 posix 共享記憶體區涉及兩個步驟 1 指定乙個名字引數呼叫 shm open,以建立乙個新的共享記憶體區物件或開啟乙個以存在的共享記憶體區物件。2 呼叫 mmap 把這個共享記憶體區對映到呼叫程序的位址空間。傳遞給 shm open 的名字引數隨後由希望共享該記憶...
Posix多執行緒程式設計學習筆記(六) 共享記憶體(2)
三 posix共享記憶體函式 posix共享記憶體區涉及兩個步驟 1 指定乙個名字引數呼叫shm open,以建立乙個新的共享記憶體區物件或開啟乙個以存在的共享記憶體區物件。2 呼叫mmap把這個共享記憶體區對映到呼叫程序的位址空間。傳遞給shm open的名字引數隨後由希望共享該記憶體區的任何其他...