interlocked

    0

    3답변

    여기에 나열된 코드가 있습니다 : Threading and Sockets. isListening을 volatile으로 수정해야합니다. 내가 말했듯이, 그 변경자는 다른 스레드로부터 변수에 접근 할 수있게 해줬습니다. MSDN을 읽은 후 다음과 같이 새로 만든 스레드 프로세스에서 isListening을 읽는 중임을 알게되었습니다. 그래서, 내 질문에 지금 :

    1

    3답변

    두 스레드에서 액세스하는 개체가 있습니다. 하나의 스레드는 값을 반환하는 객체에서 장기 실행 멤버 함수를 호출합니다. 두 번째 스레드는 해당 값을 생성하는 데 사용 된 개체를 업데이트합니다. Interlock.Exchange를 호출하여 첫 ​​번째 스레드가 실행되는 동안 두 번째 스레드의 개체를 바꿉니다. 1. 이전 스레드의 자체가 원래 개체에 대한 참조를

    2

    2답변

    2 개의 스레드가있는 매우 간단한 워치 독 프로그램이 있습니다. 하나의 스레드는 긴 변수를 갱신하고 다른 스레드는 변수를 읽습니다. 마지막 업데이트로부터 X 초 이상 경과했는지 경고합니다. 문제는 때로는 (하루에 한 번 이상 발생) 두 번째 스레드가 변수의 부실 값을 읽는 것입니다. 는 때때로 방지하기 위해 3 초 전에서 (긴 변수를 업데이트 첫 번째 스레

    0

    4답변

    나는 잠금이없는 데이터 구조에 익숙하다. 그래서 나는 운동을 위해 바운드 된 lockless deque (아직 크기를 조정할 필요가 없다. 기본 작업을하고 싶다)를 썼다. 나는 그들이 올바른 생각을 가지고 있는지, 그리고/또는 어떻게 개선 할 수 있는지에 관해 그들이 무엇을하고 있는지를 아는 사람들로부터 확신을 갖고 싶습니다. class LocklessDe

    1

    3답변

    다른 클래스에 대한 잠금 상태 (_isWorking)에 대한 정보를 제공하는 동시에 리소스에 대한 독점적 액세스를 제공하는 방법을 찾고 있습니다. 읽다. 여기 내가 지금까지 가지고 올 것을 : 그것은, 스레드가 이미 프로세스가 실행되고 있는지보고에 따라, 두 번째 스레드 이후 잠금 정확히 작동하지 않습니다 단지 방법을 떠나 private int _isWor

    5

    2답변

    은 내가 similar question에 대한 답변을 읽어 봤는데,하지만 난 아직도 조금 혼란 스러워요 ... 아벨은 훌륭한 대답을했다,하지만 난에 대해 확실 해요 일부입니다 : .. . 휘발성 변수 선언을 사용하면 모든 단일 액세스에 대해 휘발성이됩니다. 이 을 다른 방식으로 강제 실행하는 것은 불가능합니다. 따라서 휘발성이 있습니다. 은 인터록으로 바꿀

    0

    3답변

    Interlocked winapi 함수를 사용할 때의 장점과 단점은 Win32 플랫폼에서 원자 적 연산을 제공하는 라이브러리가 아닌 무엇입니까? 이식성은 문제가되지 않습니다.

    2

    3답변

    여러 스레드에서 작동 할 수있는 고성능 클래스를 유지 관리하고 있습니다. 대부분의 필드는 불안정한 int이며, 그 중 하나를 이중으로 업그레이드해야합니다. 궁금한 점이 있다면 잠금을 해제 할 수있는 방법이 있으며, Interlocked.CompareExchange(double, double, double)이 32 비트 OS에서 광고로 작동하는지 또는 찢어진

    4

    1답변

    이 코드는 스레드로부터 안전한가요? 또는 이런 식으로 넣어 : 어쨌든 GetIt을 (전화 거기에있다)을하고 GetIt는()가 가능 것 같다 2 개 개의 다른 스레드 Private Shared hitCount As Long = 1 Public Shared Function GetIt() As Long Threading.Interlocked.Incr

    6

    1답변

    내가 스레드 안전 행동해야합니다 일부 코드가이 유사합니다 protected long m_RunningValue protected long m_RunningCounter protected object m_Lock = new object(); public long RunningValue { get { return Interlocked.Read(m_