은 가정 멀티 스레드에서 정적 메서드를 실행? 우리는 CLR이 스택상의 가상 머신 기반이라는 것을 알고 있습니다. Foo.Do() 메서드를 호출하는 인스턴스에는 자체 호출 스택이 있습니다. 스택에 int arg를 푸시 한 다음 Foo.Do() 메소드를 호출합니다. 다중 쓰레드에서 Foo.Do()를 호출하는 인스턴스가 서로 방해를 일으키지 않을지 궁금합니다. 모든 인스턴스에는 Foo.Do() 또는 오히려 복사본이 있습니까?내가 클래스 아래와 같이이
0
A
답변
1
각 스레드마다 자체 호출 스택이 설정되어 있습니다. 따라서 하나의 스레드에서 함수를 호출하면 스택은에 대해서만 으로 변경됩니다. 다른 스레드는 서로 영향을 미치지 않고 원하는 다른 함수를 호출 할 수 있습니다 (공유 상태는 제외하고 다른 문제입니다. 중요한 것은 스택이 공유되지 않는다는 것입니다).
1
다중 스레드에서 Foo.Do()를 호출하는 인스턴스가 서로 방해하지 않는지 궁금합니다. 모든 인스턴스에는 Foo.Do() 또는 오히려 복사본이 있습니까?
이 경우 각 인스턴스는 괜찮을 것입니다. Invoke
및 Foo.Do
은 다른 공유 상태에 의존하지 않으므로 별도의 스레드간에 공유되는 데이터는 없습니다.
여러 스레드의 주된 문제는 개별 스레드간에 데이터를 공유하려고 할 때 발생합니다. 이때 공유 데이터에 대한 액세스를 동기화하는 데주의를 기울여야합니다.
0
Perphas 당신은 ThreadLocal API를보아야합니다. 그러면 스레드 별 저장소가있을 수 있습니다. 귀하의 경우 Reed가 제안한 바와 같이 공유 상태가 없으므로 중요하지 않습니다.하지만 ThreadLocal이 아니면 ThreadLocal이 아닌 한 정적 스토리지가 공유 될 때까지 중요합니다.
관련 문제
- 1. 추상 클래스 나 상속 스키마를 아래와 같이이
- 2. 일부 키 내가 dialplan을 아래와 같이이
- 3. 하는 HTML 코드를 아래와 같이이
- 4. 어떻게 몇 가지 코드 아래와 같이이
- 5. 내가 환경 섹션을 얻기 위해 아래와 같이하려고 내가 app.config에 아래와 같이이
- 6. jQuery를/자바 스크립트 내가 코드를 아래와 같이이 스크롤
- 7. 내가 샘플 .H 파일을 아래와 같이이 꿀꺽 꿀꺽
- 8. 어떻게 형태 아래와 같이이 체크 체크 박스
- 9. XSD는 - 나는 XSD 파일을 아래와 같이이
- 10. ObjectDataSource를 가진의 GridView가 내가있는 gridview 아래와 같이이
- 11. 는 RelativeLayout의 나는 RelativeLayout의 아래와 같이이
- 12. NHibernate에, I는 테이블 A 아래와 같이이
- 13. 나는 테이블 정의 아래와 같이이 MySQL의
- 14. 웹 소켓은 루프가 나는 코드를 아래와 같이이
- 15. 난 후 배열 아래와 같이이 포스트 배열
- 16. 내가 URL과 같이이 htaccess로
- 17. 내가 샘플 문자열과 같이이
- 18. 내가 문자열과 같이이 정규식
- 19. $ 내가 약간의 스크립트를 다음과 같이이
- 20. 내가 C++ 헤더 파일과 같이이 생성자
- 21. SQL 쿼리 내가 주식 거래 표와 같이이
- 22. NumericUpDown 익스텐더는 내가 아약스 NumericUpDown 연장과 같이이
- 23. 하나는 내가 상황과 같이이 특정 속성이
- 24. 내가 간단한 파이썬 스크립트과 같이이 윈도우
- 25. 시험 방법은 내가 인터페이스과 같이이 MOQ
- 26. jQuery를 내가 아주 간단한 스크립트과 같이이 데이터
- 27. 자바 스크립트 정규식 내가 문자열과 같이이
- 28. SQL 내 내가 쿼리과 같이이 쿼리
- 29. 내가 아래와 같이 공개 열거를 열거 목록
- 30. 는 내가 아래와 같이 bash는 스크립트가