memory-barriers

    4

    2답변

    조건 변수는 일반적으로 그들이 참조하는 상태가 뮤텍스 아래에서 수정되도록 사용됩니다. 그러나 상태가 단일 세트 전용 플래그 일 경우 동시 실행을 방지하기 위해 뮤텍스가 필요하지 않습니다. 그래서 하나는 다음과 같이 작업을 수행 할 수 있습니다 : flag = 1; pthread_cond_broadcast(&cvar); 그러나, 이것은 단지 안전 pth

    0

    3답변

    Alpha 스레드가 잠금없이 변수 A에 쓰고 있다고 가정합니다. 두 번째 스레드 Beta이 Alpha이 종료 될 때까지 대기 한 다음 변수 A을 차례로 읽습니다. A의 내용이 신선하지 않을 수 있습니까? 메모리 쓰기가 스레드 수명을 초과하여 지연 될 수 있습니까? 스레드를 기다리는 표준 메커니즘이 메모리 배리어로 암시 적으로 작동하지 않습니까? Alpha

    26

    2답변

    나는 이것에 대한 세부 사항을 찾으려고 노력했다. 나는 mutexes와 atomics에 관한 표준을 읽었다. 그렇지만 여전히 C++ 11 메모리 모델 가시성 보장을 이해할 수 없었다. 뮤텍스 BESIDE 상호 배제의 매우 중요한 특징은 시정을 보장한다는 것입니다. 일명 한 번에 하나의 스레드 만 카운터를 늘리는 것만으로는 충분하지 않습니다. 스레드가 뮤텍스

    4

    2답변

    다른 객체에 대한 참조가있는 클래스를 디자인 할 때 참조 된 객체를 처음 사용할 때만 생성하는 것이 좋습니다. 느린 로딩을 사용하십시오. 지금까지 내가 할 수있는 Encoding Utf8NoBomEncoding { get { if (this.utf8NoBomEncoding == null) { var encoding = new U

    3

    2답변

    멀티 코어 ARM 칩과 단일 코어 칩에서 Dalvik + JIT를 실행하면 페널티가 발생합니까? 예 : Android 시스템에서 멀티 코어 지원을 사용 중지하고 단일 CPU 코어로 전체 휴대 전화를 실행하는 경우 단일 스레드 Java 벤치 마크를 실행할 때 성능이 향상됩니까? 멀티 코어에서 메모리 장벽과 동기화 비용은 얼마입니까? 나는 싱글 코어 폰과 듀얼

    2

    1답변

    나는 다음과 같은 C 코드가 있습니다 ... data[index] = something; a_write_memory_barrier(); index = new_index; ... 코드는 잠금으로 보호되지 않습니다, 나는 data[index]이 index의 갱신 전에 저장되어 있는지 확인하려면 (다른 사람들은 data 및 index을 읽기). 이 코

    10

    2답변

    C++ 11 mutexes lock은 void lock() volatile이 아닙니다. 컴파일러는 어떤 기능이 메모리 장벽인지 알지 못합니다. 휘발성이 아니더라도 모든 기능 장벽이 있습니까? 모든 사람들이 알아야 할 메모리 장벽과 메모리 장벽은 무엇입니까?

    27

    2답변

    나는 이것에 관해서 초보자입니다. 누구나 다음의 메모리 장벽 사이의 차이점에 대한 간략한 설명을 제공 할 수 있습니까? 창문 MemoryBarrier(); 울타리 _mm_mfence(); 인라인 어셈블리 asm volatile ("" : : : "memory"); 다음은 간단한 설명이없는 경우 _ReadWriteBarrier(); 고유 좋은 기사 또는 책

    0

    2답변

    나는 메모리 장벽이 필요한 이유를 이해하지만, 유니 프로세서의 경우에는 이해하지 못한다. 내가 UP을 사용할 때도 장벽을 해결해야합니까? 모든 문서는 SMP로 설명하지만 UP는 아닙니다. 다음 코드에서 r2 == 0은? // the location 0xdeadbeef has a zero initial value ldr r0, =0xdeadbeef ldr

    4

    2답변

    시스템 가동 시간을 얻는 강력한 방법이 필요하며 다음과 같이 무언가를 사용하게되었습니다. 사람들이 읽을 수 있도록 몇 가지 설명이 추가되었습니다. 이 작업은 .NET 3.5 응용 프로그램에서 실행해야하므로 Task를 사용할 수 없습니다. // This is a structure, can't be marked as volatile // need to imp