찾다

 >  Q&A  >  본문

redis - Memcache의 원자적 작동을 이해하는 방법은 무엇입니까?

Memcache의 추가는 원자적입니다. 즉, 여러 프로세스가 동시에 추가 작업을 수행하므로 경쟁 조건이 발생하지 않습니다. 이는 추가가 동시성을 생성하지 않음을 의미합니까? ?

大家讲道理大家讲道理2766일 전1089

모든 응답(1)나는 대답할 것이다

  • 某草草

    某草草2017-05-31 10:38:15

    질문자의 생각이 너무 과합니다. 동시성을 보장할 수 있는 것은 바로 add의 원자성 때문입니다.

    기본 개념에 대해 충분히 알지 못합니다.

    작업의 동시성 은 의미가 없다고 말합니다. 으아아아 위의 진술은 원자적입니까? 위의 명령문을 동시에 실행할 수 있습니까?

    으아아아

    위의 것은 어떻습니까?

    으아아아

    이건 어때요?

    동시접속은 안되나요? 아니요.

    + 是原子性的,那么 +우리는

    어떤 작업도 원자적이지 않은

    세상을 상상합니다. 가장 간단한

    예를 들어보세요:

    i++

    .

    i 的值是 4현재 2개의 스레드

    가 동시에 실행

    되고 있습니다. (동시성을 동시성이라고 가정해 봅시다) i++ 어떻게 구현되나요?

    i++

    먼저 i의 값을 구하세요.
    • i
    • 값에 1을 더합니다.

      최종 결과는 i
    • 에 저장됩니다.

      이때 i++가 원자적이지 않으면 두 스레드가 다양한 실행 순서로 나타나 잘못된 결과를 얻게 됩니다.

    첫 번째 스레드는 i 값 4
    • 를 얻었습니다.

      두 번째 스레드는 i 값 4
    • 를 얻었습니다.

      첫 번째 스레드는 i에 1을 더하고 5를 얻습니다
    • 두 번째 스레드는 i에 1을 더해 5를 얻습니다
    • 첫 번째 스레드는 5를 i
    • 에 저장합니다.

      두 번째 스레드는 5를 i
    • 에 저장합니다.

      최종 결과를 얻으세요. i는 5입니다. 분명히 이 결과는 잘못된 것입니다.
    하지만 i++이 원자적이기 때문에 이런 상황이 발생하지 않았습니다.

    그렇다면 원자성은 동시성이 없다는 뜻인가요? 예.

    누구야

    사용자 관점에서

    작업은 원자적이어야 합니다. 우리가 동의하는 것은

    운영

    이 아니라 add시스템입니다.

    회신하다
    0
  • 취소회신하다