2009-08-05 5 views
-2

어떻게 원자적인 방법으로 코드를 스레드로부터 안전하게 할 수 있습니까?원자 방법의 용도는 무엇입니까?

+1

질문을 조금 더 명확히하기를 원할지도 모릅니다. "원자력 방식"은 매우 구체적이거나 명확하지 않습니다. –

+0

이것은 매우 자세하고 이해하기 어려운 질문입니다. "원자력 방식"이란 무엇입니까? 아마 원자 방법을 의미할까요? 또는 동기화 된 방법? –

답변

1

원자 연산은 전혀 중단 할 수없는 연산입니다.

일반적인 동기화 문제는 동기화 메커니즘에 의해 보호되지 않는 데이터 구조를 한 스레드가 업데이트 할 때 발생합니다. 따라서 값이 다른 스레드에 의해 발밑에서 변경되기 때문에 스레드는 부실하거나 일치하지 않는 값을 읽을 수 있습니다.

이 문제를 방지하는 메커니즘은 데이터 구조에 대한 액세스를 동기화하는 것이므로 순서를 지정하고 다른 스레드가 액세스하기 전에 단일 스레드가 데이터 구조의 사용을 완료하도록합니다.

작동 할 수있는 이러한 동기화 메커니즘은 작동하는 동안 자체적으로 CPU에서 예약 할 수 없도록해야합니다. 작동하지 않으면 스레드가 예상치 못한 경우 스레드가 구조를 업데이트 할 수 있기 때문입니다.

이러한 메커니즘은 작동을 보장하기 위해 이러한 원자 적 작업과 관련하여 구현됩니다. 예를 들어, semaphores은 원자 증가 및 '테스트 및 감소'연산자를 사용합니다.

이 항목은 대개 주제가 '분산 시스템'으로 다루어지며,이 용어는 동시성을 이해하는 데 도움이되는 리소스가 될 수 있습니다.

관련 문제