lockless

    0

    1답변

    아래는 나의 사용 사례입니다. 전역 변수가 하나 있고 모든 CPU에서 여러 스레드가이 변수에 액세스하고 있습니다. 원자와 비교하고 스핀 설정된 tryLock for(;;) { auto temp = go_for_work(); if (temp -> spin.trylock() == 0) { continue;

    0

    1답변

    버퍼링 된 입력 양식을 작성하여 Rx ​​또는 다른 라이브러리 (표준 .net 4.5 외부)을 사용하지 않고 을 구현하는 것이 얼마나 쉬운 지 확인하려고합니다. 그래서 다음 클래스를 내놓았다 : public class BufferedInput<T> { private Timer _timer; private volatile Queue<T>

    4

    1답변

    매우 빠른 멀티 스레드 개별 이벤트 시뮬레이션 프레임 워크를 만들고 있습니다. 프레임 워크의 핵심은 원자와 잠금없는 프로그래밍 기술을 사용하여 많은 스레드에서 매우 빠른 실행을 달성합니다. 이를 위해서는 일부 변수를 캐시 라인에 맞추고 나머지 캐시 라인 공간을 채워 캐시 라인 경합이 없도록해야합니다. 다음은 내가 그것을 할 방법 : // compute ca

    2

    1답변

    나는 잠금없는/잠금 무료 연결 목록에 대한 다양한 솔루션을 온라인으로 모색 해왔다. 나는이 문제를 해결하기 위해 RCU, hazard pointer, auxilary 노드/"마킹 (marking)"노드에 관한 출판물과 같은 기술을 접했습니다. 이들은 모두 여러 작가와 독자의 동시성 문제를 해결합니다. 이러한 솔루션을 추구하기 전에 단일 작성자 - 다중 판독

    1

    2답변

    각각 관련된 데이터가있는 500k 개의 키를 저장하기위한 데이터 구조가 필요합니다. 150 개의 스레드가 동시에 실행되어 & 키에 액세스합니다. 하루에 한 번 조작 작업이있을 수 있으므로 데이터 구조를 업데이트해야합니다. 키가 삭제되거나 새 키가 추가되거나 데이터가 변경된다고합니다. 데이터 구조 업데이트가 진행 중일 때 150 개의 스레드가 액세스하지 못하

    2

    2답변

    MSDN에 따르면 Stopwatch 클래스 인스턴스 메서드는 다중 스레드 액세스에 안전하지 않습니다. 이것은 또한 개별 방법을 검사하여 확인할 수 있습니다. _stopwatch.ElapsedMilliseconds 이후 public class ElapsedTimer : IElapsedTimer { /// Shared (static) stopwatc

    0

    1답변

    리눅스 커널의 잠금없는 목록을 이해하려고합니다. 이것은 llist.h에 정의되어 있습니다. 왜 그들은 두 개의 구조체를 가지고 목록을 정의합니까? 다음 노드에 대한 포인터가있는 구조체가 하나만있는 것은 어떨까요? 커널의 이중 연결 목록 구현과 비슷합니다.

    0

    1답변

    x64 : http://www.multicoreinfo.com/research/papers/2008/damp08-intel64.pdf의 메모리 정렬에 대한 인텔 문서를 읽었습니다. 잠긴 명령은 프로세서에 보이지 않게하는 전체 장벽을 발생시킵니다. 지정된 순서로 업데이트합니다. 그러나 장벽으로 인한 가시성에 대해서는 아무 것도 없습니다. 장벽은 다른 프로세서

    0

    1답변

    난 llist.h에 정의 된대로 리눅스 커널의 자물쇠가없는 목록을 사용하고 있습니다. llist_add이 목록에 추가되지만 머리글 바로 다음에 새 노드가 추가됩니다. 일정 시간에 목록의 꼬리에 어떻게 추가 할 수 있습니까?

    6

    2답변

    Go의 버퍼 된 채널은 본질적으로 스레드 안전 FIFO 대기열입니다. (Is it possible to use Go's buffered channel as a thread-safe queue? 참조) 어떻게 구현되는지 궁금합니다. Is there such a thing as a lockless queue for multiple read or write th