여러 스레드에 걸쳐 개체의 속성 설정

문서

나는 상황을 설명하기 위해 최선을 다할 것입니다.

public class A
{
    Int64 Id { get; set; }
    Decimal Foo { get; set; }
}

public class B
{
    Int64 Id { get; set; }
    Decimal Bar { get; set; }
}

public class C
{
    Int64 Id { get; set; }
    Decimal? Foo { get; set; }
    Decimal? Bar { get; set; }
}

public class test
{
    ConcurrentDictionary<Int64, C> dictionary { get; set; }
    List<A> listA { get; set; } 
    List<B> listB { get; set; }
}

listA 및 listB는 각각 5 백만 개의 개체를 포함합니다.

그래서 제가하는 일은 별도의 스레드에서 listA와 listB를 반복하는 것입니다. 사전에 ID가 포함되어 있는지 확인한 다음 값을 가져와 일치하는 속성을 설정합니다.

제 질문은 이것이 스레드 세이프입니까? 그렇지 않은 경우 스레드 안전을 만드는 가장 좋은 방법은 무엇입니까?

하나 더 :

  • listA 및 listB에는 중복 항목이 없습니다. 그래서 나는 객체 C의 속성을 한 번만 설정했습니다.

더미 데이터를 사용하는 예 :

List<A> listA = new List<A> 
{ 
    new A { Id = 1, Foo = 5 },
    new A { Id = 2, Foo = 10 },
    new A { Id = 3, Foo = 100 }
};

List<B> listB = new List<B> 
{ 
    new A { Id = 1, Bar = 3 },
    new A { Id = 2, Bar = 2 },
    new A { Id = 3, Bar = 1 }
};

ConcurrentDictionary<Int64, C> dictionary = new ConcurrentDictionary<Int64, C>
{
    Keys = {1, 2, 3},
    Values = { new C { Id = 1 }, new C { Id = 2 }, new C { Id = 3 } }
};

나중에 사전에 다음과 같은 키 / 값 쌍이 있습니다.

Key = 1 , value = object of class C with properties : Id = 1, Foo = 5, Bar = 3,
Key = 1 , value = object of class C with properties : Id = 1, Foo = 10, Bar = 2,
Key = 1 , value = object of class C with properties : Id = 1, Foo = 100, Bar = 1    
타 이리 잭슨

루프에서 수행하는 모든 작업이 이미 동시 사전에있는 객체 C에 액세스하고 Foo 및 Bar 속성을 각각 설정하는 것이라면 예, 스레드로부터 안전해야합니다.

ConcurrentDictionary에서 항목을 삽입하거나 제거하는 경우에도 ConcurrentDictionary를 적절하게 사용하는 경우 스레드로부터 안전해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

여러 개의 Windows 10 가상 데스크톱에 걸쳐 지속되는 창?

분류에서Dev

neo4j의 여러 노드에 걸쳐 여러 속성에 걸쳐 고유 한 제약 조건을 만들 수 있습니까?

분류에서Dev

SQL의 여러 행에 걸쳐 연속 세션 그룹화

분류에서Dev

여러 섹션에 걸쳐 Word에서 연속 페이징을 설정하려면 어떻게합니까?

분류에서Dev

특정 값에 하나 개의 속성을 제한하면서 어떻게 3 개 테이블에 걸쳐 참여합니까?

분류에서Dev

여러 줄에 걸쳐 전체 div 블록을 잡는 정규식

분류에서Dev

Pandas : 여러 열에 걸쳐 행에서 지정된 값의 빈도 얻기

분류에서Dev

여러 디스크에 걸쳐있는 Ubuntu 설치

분류에서Dev

여러 자릿수에 걸쳐 로그 시퀀스 생성

분류에서Dev

여러 열에 걸쳐 쌍의 인스턴스 계산

분류에서Dev

루프에서 Ruby 객체의 여러 속성 설정

분류에서Dev

랩 어라운드를 사용하여 세 개의 연속 인덱스에 걸쳐있는 수식의 성능 최적화

분류에서Dev

여러 섹션에 걸쳐 연속 계산되는 Swift IndexPath?

분류에서Dev

Python : 여러 간격에 걸쳐 고정 범위의 산점도를 만드는 방법은 무엇입니까?

분류에서Dev

두 문자 사이에 여러 줄에 걸쳐 정규식

분류에서Dev

메모장에서 여러 줄에 걸쳐 정규식 사용 ++

분류에서Dev

두 문자열 사이의 여러 줄에 걸쳐 텍스트 세그먼트 바꾸기-정규식

분류에서Dev

여러 줄에 걸쳐 일치하는 문자열 사이의 텍스트를 추출하는 정규식?

분류에서Dev

여러 줄에 걸쳐 펄 정규식 일치

분류에서Dev

여러 줄에 걸쳐 정규식 사용 (DOTALL / MULTILINE)

분류에서Dev

여러 줄에 걸쳐 Perl 정규식 사용

분류에서Dev

ggplot2의 여러 플롯에 걸쳐 선 만들기

분류에서Dev

r의 여러 열에 걸쳐 dplyr 그룹화?

분류에서Dev

iText의 여러 페이지에 걸쳐있는 양식

분류에서Dev

여러 행에 걸쳐있는 방식의 Haskell "let"구문

분류에서Dev

Perl은 여러 줄에 걸쳐 긍정적 인 예측이 될 때까지 검색하고 교체합니다.

분류에서Dev

javascript : 여러 특정 개체 속성의 존재 여부 확인 (coffeescript에서도)

분류에서Dev

여러 줄에 걸쳐 긴 16 진수 리터럴을 정의하는 방법은 무엇입니까?

분류에서Dev

여러 줄에 걸쳐 일치하고 여러 문서에서 찾은 내용의 작은 부분을 대체하는 Powershell 정규 표현

Related 관련 기사

  1. 1

    여러 개의 Windows 10 가상 데스크톱에 걸쳐 지속되는 창?

  2. 2

    neo4j의 여러 노드에 걸쳐 여러 속성에 걸쳐 고유 한 제약 조건을 만들 수 있습니까?

  3. 3

    SQL의 여러 행에 걸쳐 연속 세션 그룹화

  4. 4

    여러 섹션에 걸쳐 Word에서 연속 페이징을 설정하려면 어떻게합니까?

  5. 5

    특정 값에 하나 개의 속성을 제한하면서 어떻게 3 개 테이블에 걸쳐 참여합니까?

  6. 6

    여러 줄에 걸쳐 전체 div 블록을 잡는 정규식

  7. 7

    Pandas : 여러 열에 걸쳐 행에서 지정된 값의 빈도 얻기

  8. 8

    여러 디스크에 걸쳐있는 Ubuntu 설치

  9. 9

    여러 자릿수에 걸쳐 로그 시퀀스 생성

  10. 10

    여러 열에 걸쳐 쌍의 인스턴스 계산

  11. 11

    루프에서 Ruby 객체의 여러 속성 설정

  12. 12

    랩 어라운드를 사용하여 세 개의 연속 인덱스에 걸쳐있는 수식의 성능 최적화

  13. 13

    여러 섹션에 걸쳐 연속 계산되는 Swift IndexPath?

  14. 14

    Python : 여러 간격에 걸쳐 고정 범위의 산점도를 만드는 방법은 무엇입니까?

  15. 15

    두 문자 사이에 여러 줄에 걸쳐 정규식

  16. 16

    메모장에서 여러 줄에 걸쳐 정규식 사용 ++

  17. 17

    두 문자열 사이의 여러 줄에 걸쳐 텍스트 세그먼트 바꾸기-정규식

  18. 18

    여러 줄에 걸쳐 일치하는 문자열 사이의 텍스트를 추출하는 정규식?

  19. 19

    여러 줄에 걸쳐 펄 정규식 일치

  20. 20

    여러 줄에 걸쳐 정규식 사용 (DOTALL / MULTILINE)

  21. 21

    여러 줄에 걸쳐 Perl 정규식 사용

  22. 22

    ggplot2의 여러 플롯에 걸쳐 선 만들기

  23. 23

    r의 여러 열에 걸쳐 dplyr 그룹화?

  24. 24

    iText의 여러 페이지에 걸쳐있는 양식

  25. 25

    여러 행에 걸쳐있는 방식의 Haskell "let"구문

  26. 26

    Perl은 여러 줄에 걸쳐 긍정적 인 예측이 될 때까지 검색하고 교체합니다.

  27. 27

    javascript : 여러 특정 개체 속성의 존재 여부 확인 (coffeescript에서도)

  28. 28

    여러 줄에 걸쳐 긴 16 진수 리터럴을 정의하는 방법은 무엇입니까?

  29. 29

    여러 줄에 걸쳐 일치하고 여러 문서에서 찾은 내용의 작은 부분을 대체하는 Powershell 정규 표현

뜨겁다태그

보관