interlocked

    0熱度

    4回答

    我想用Interlocked.CompareExchange與從int繼承,像這樣的枚舉類型: public enum MyEnum : int { A, B } public class MyClass { private static readonly MyEnum s_field = MyEnum.A; public void Foo() {

    2熱度

    2回答

    我想爲自己說清楚什麼是「互鎖」的意思。我閱讀以下內容:「互鎖函數提供了一種簡單的機制,用於同步對多線程共享的變量的訪問,並以原子方式對變量執行操作。」 那麼下面的函數可以被稱爲互鎖嗎? #include <QtCore> #include <QAtomicPointer> QAtomicInt i; void interlockedMultiply(int factor) {

    0熱度

    1回答

    我在那裏我可以以原子執行加法和只是爲了節省語句的情況下 - 我沒了下文 int result = Interlocked.Add(ref int source, await ComputeAsync(object someObj); public async Task<int> ComputeAsync(object someObj) { // some operations

    0熱度

    2回答

    我熟悉使用Interlocked.CompareExchange()與普通對象。不過,我想使用它與數組的成員: string[] myArray = new string[] { "A", "B", "C" }; string myStr = (string) Interlocked.CompareExchange(ref myArray[0], null, myArray[0]); // m

    0熱度

    1回答

    我的問題很簡單。 爲什麼聯鎖 - 多線程中的遞增比單線程慢? 僅僅是因爲Cache line bouncing(Cache line contention)? 還是有其他原因? 我使用的是英特爾i7,visual studio 2012.我使用互鎖增量功能測試了計數。並且測試結果是那。 1主題 - 610385971 2主題 - 497804468 3主題 - 351516659 4線程 - 33

    10熱度

    2回答

    問題我有一個令人沮喪的問題與一些代碼,不知道爲什麼會出現此問題。 // // .NET FRAMEWORK v4.6.2 Console App static void Main(string[] args) { var list = new List<string>{ "aa", "bbb", "cccccc", "dddddddd", "eeeeeeeeeeeeeeee",

    3熱度

    2回答

    是Interlocked.Read(ref long)在64位體系結構上「優化」了嗎?即如果我正在編寫一個可供兩種體系結構使用的庫,我應該關注在64位CPU上不必要地使用Interlocked.Read會對性能產生的影響嗎? 我想過用這樣的事情,所以我想知道,如果這是有道理的: // X64 is a preprocessor constant set for x64 builds [

    2熱度

    1回答

    什麼是C#的同等Java#Interlocked.Exchange(Object, Object) : Object? Java有沒有辦法在一個原子步驟中執行以下操作無鎖:1)本地存儲變量的引用2)將另一個引用設置爲相同的變量?

    0熱度

    1回答

    當在C++中使用原子時,我可以在指針的未使用地址位中打包其他變量。我可以自動更改標誌,計數器等與一個指針。在c#中,這並不容易。我想我可以使用靜態引用來表示特殊的東西,但是當它壓縮堆時,我稍微擔心gc移動引用。例如,在這個示例代碼中,可以通過使用靜態引用s_cantAddWork將原子鏈接列表標記爲封閉添加。我的問題是,我不得不擔心gc移動s_cantAddWork?我需要使用固定?到目前爲止,在

    0熱度

    1回答

    我們的設置是:使用AutoFac for DI的Asp.NET + MVC5。 我們有一個類(這是一個單),其管理訪問令牌的各種服務。無論何時,這些令牌太接近到期(少於10分鐘),我們要求新的令牌,刷新它們。我目前的實現如下所示: // member int used for interlocking int m_inter = 0; private string Token { get;