«multithreading» 태그된 질문

멀티 스레딩은 여러 동시 실행 스트림 (일반적으로 스레드라고 함)을 활용하여 컴퓨터 또는 프로그램이 동시에 또는 비동기 적으로 작업을 수행 할 수있는 기능입니다.

6
main ()이 종료되면 분리 된 스레드는 어떻게됩니까?
내가 시작한 std::thread다음 detach()스레드를 실행 한다고 가정 하면 스레드 std::thread가 한 번 표현 했지만 스레드가 계속 실행되지 않습니다 . 또한 프로그램에 분리 된 스레드 1 을 결합하기위한 신뢰할 수있는 프로토콜이 없으므로 분리 된 스레드가 main()종료 될 때에도 계속 실행 됩니다. 표준에서 (더 정확하게는 N3797 C ++ 14 초안에서) 아무것도 찾을 …

13
num ++가 'int num'의 원자가 될 수 있습니까?
일반적 속 int num, num++(나 ++num), 판독 - 수정 - 기록 동작으로, 인 원자 없다 . 그러나 종종 GCC 와 같은 컴파일러 가 다음 코드를 생성하는 것을 종종 볼 수 있습니다 ( here 시도 ). num++하나의 명령에 해당하는 5 번 라인 이이 경우에 num++ 원자 라고 결론 지을 수 있습니까? …

9
모범 사례 : 방향 변경 중 AsyncTask
AsyncTask 다른 스레드에서 복잡한 작업을 실행하는 것이 좋습니다. 그러나 방향 변경이나 다른 구성 변경이있는 동안에는 AsyncTask전류 Activity가 파괴되고 다시 시작됩니다. 그리고 인스턴스 AsyncTask가 해당 활동에 연결되면 실패하고 "강제 종료"메시지 창이 나타납니다. 따라서 이러한 오류를 피하고 AsyncTask가 실패하지 않도록 일종의 "모범 사례"를 찾고 있습니다. 내가 지금까지 본 것은 : 방향 변경을 …

5
.NET Framework에서 동시 HashSet <T>?
다음 수업이 있습니다. class Test{ public HashSet&lt;string&gt; Data = new HashSet&lt;string&gt;(); } 다른 스레드에서 "데이터"필드를 변경해야하므로 현재 스레드 안전 구현에 대한 의견이 필요합니다. class Test{ public HashSet&lt;string&gt; Data = new HashSet&lt;string&gt;(); public void Add(string Val){ lock(Data) Data.Add(Val); } public void Remove(string Val){ lock(Data) Data.Remove(Val); } } 현장으로 직접 이동하여 여러 …


6
enumerateObjectsUsingBlock과 for를 사용하는 경우
명백한 차이점 외에 : enumerateObjectsUsingBlock인덱스와 객체가 모두 필요할 때 사용 enumerateObjectsUsingBlock지역 변수를 수정해야 할 때 사용하지 마십시오 (나는 이것에 대해 잘못했습니다. 범음의 대답을보십시오) 되어 enumerateObjectsUsingBlock일반적으로 고려 좋든 나쁘 때 for (id obj in myArray)것 또한 사용할 수 있습니까? 장점 / 단점은 무엇입니까 (예 : 성능이 다소 떨어짐)?

5
잠금 해제 된 뮤텍스를 잠그는 것이 얼마나 효율적입니까? 뮤텍스의 비용은 얼마입니까?
저수준 언어 (C, C ++ 또는 기타)에서 : pthread가 제공하는 것 또는 네이티브 시스템 라이브러리가 제공하는 것과 같은 여러 뮤텍스를 갖는지 또는 객체에 대한 단일 언어를 선택할 수 있습니다. 뮤텍스를 잠그는 것이 얼마나 효율적입니까? 즉, 어셈블러 명령어가 몇 개나 있고 시간이 얼마나 걸립니까 (뮤텍스가 잠금 해제 된 경우)? 뮤텍스 비용은 …

5
C # Thread safe fast (est) 카운터
최상의 성능으로 C #에서 스레드 안전 카운터를 얻는 방법은 무엇입니까? 이것은 얻는 것처럼 간단합니다. public static long GetNextValue() { long result; lock (LOCK) { result = COUNTER++; } return result; } 그러나 더 빠른 대안이 있습니까?

5
정적 클래스 변수를 수정하지 않으면 동기화되지 않은 정적 메소드가 스레드 안전합니까?
난 당신이하는 정적 방법이 있다면 궁금 하지 동기화를하지만 않습니다 하지 정적 변수를 수정할 수는 스레드 안전? 메소드가 그 안에 로컬 변수를 작성하면 어떨까요? 예를 들어 다음 코드는 스레드로부터 안전합니까? public static String[] makeStringArray( String a, String b ){ return new String[]{ a, b }; } 따라서 두 개의 스레드가 연속적으로 …


11
미래의 목록을 기다리는 중
List선물 을 돌려주는 방법이 있습니다 List&lt;Future&lt;O&gt;&gt; futures = getFutures(); 이제 모든 미래가 성공적으로 처리되거나 미래에 의해 출력이 반환되는 작업이 예외를 throw 할 때까지 기다립니다. 하나의 과제가 예외를 던지더라도 다른 미래를 기다릴 필요는 없습니다. 간단한 접근 방식은 wait() { For(Future f : futures) { try { f.get(); } catch(Exception e) { …

6
스레딩 모듈과 다중 처리 모듈의 차이점은 무엇입니까?
특정 작업을 병렬로 실행하고 코드 속도를 높이기 위해 Python에서 threading및 multiprocessing모듈 을 사용하는 방법을 배우고 있습니다. 나는 threading.Thread()물체와 물체 의 차이점을 이해하기가 어렵습니다 (아마도 그것에 대한 이론적 배경이 없기 때문에) multiprocessing.Process(). 또한 작업 대기열을 인스턴스화하는 방법과 작업 대기열 중 4 개만 병렬로 실행하는 방법과 다른 작업은 실행되기 전에 리소스가 해제 …

26
보호 된 메모리를 읽거나 쓰려고했습니다. 이것은 종종 다른 메모리가 손상되었음을 나타냅니다.
누군가이 오류를 일으킬 수있는 것에 대해 누군가를 깨달을 수 있기를 바랍니다. 보호 된 메모리를 읽거나 쓰려고했습니다. 이것은 종종 다른 메모리가 손상되었음을 나타냅니다. 이 오류는 응용 프로그램의 임의의 영역에서 발생하는 것으로 보이므로 실제로 코드를 게시 할 수 없습니다. 응용 프로그램은 오류가 발생하기 전에 12-48 시간 동안 실행됩니다. 때로는 겉보기에 임의의 지점에서 …

3
Parallel.ForEach () 대 foreach (IEnumerable <T> .AsParallel ())
어그, 리플렉터를 사용하여 BCL 에서이 두 가지 방법을 찾으려고하지만 찾을 수 없습니다. 이 두 스 니펫의 차이점은 무엇입니까? ㅏ: IEnumerable&lt;string&gt; items = ... Parallel.ForEach(items, item =&gt; { ... }); 비: IEnumerable&lt;string&gt; items = ... foreach (var item in items.AsParallel()) { ... } 하나를 사용하면 다른 결과가 있습니까? (두 예제의 괄호 …

11
"Java DateFormat은 스레드 안전하지 않습니다"이것이 무엇을 야기합니까?
모든 사람들은 스레드가 안전하지 않은 Java DateFormat에 대해주의하고 이론적으로 개념을 이해합니다. 그러나 이로 인해 우리가 직면 할 수있는 실제 문제를 시각화 할 수 없습니다. 예를 들어, 클래스에 DateFormat 필드가 있고 멀티 스레드 환경에서 클래스의 다른 메소드 (서식 날짜)에 동일하게 사용됩니다. 이것이 원인입니까? 형식 예외와 같은 예외 데이터 불일치 다른 문제? …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.