
Swoole의 Atomic 클래스는 원자성 변수를 제공합니다. 원자성 변수는 여러 스레드가 동시에 접근해도 값이 변경되는 것을 방지합니다.
원자성 변수의 값은 0에서 1을 뺀 후 결과를 반환합니다.
만약 여러 스레드가 동시에 $atomic->sub(1)을 호출하면, 원자성 변수의 값은 0, -1, 또는 -2, 또는 1이 될 수 있습니다.
원자성 변수의 값은 스레드 간의 경쟁 조건을 방지하기 위해, 스레드가 원자성 변수를 업데이트할 때, 다른 스레드가 업데이트를 진행하지 못하도록 막습니다.
원자성 변수의 값이 0일 때, 스레드 A가 1을 뺀 후, 스레드 B가 1을 뺐을 때, 원자성 변수의 값은 -1이 됩니다.
원자성 변수의 값이 -1일 때, 스레드 A가 1을 뺐을 때, 원자성 변수의 값은 -2가 됩니다.
원자성 변수의 값이 -2일 때, 스레드 A가 1을 뺐을 때, 원자성 변수의 값은 0이 됩니다.
원자성 변수의 값이 0일 때, 스레드 A가 1을 뺐을 때, 원자성 변수의 값은 -1이 됩니다.
원자성 변수의 값이 -1일 때, 스레드 A가 1을 뺐을 때, 원자성 변수의 값은 -2, 또는 0, 또는 1이 됩니다.
원자성 변수의 값이 -2일 때, 스레드 A가 1을 뺐을 때, 원자성 변수의 값은 0이 됩니다.
원자성 변수의 값이 0일 때, 스레드 A가 1을 뺐을 때, 원자성 변수의 값은 -1, 또는 0, 또는 1이 됩니다.
원자성 변수의 값이 -1, 또는 0, 또는 1일 때, 스레드 A가 1을 뺐을 때, 원자성 변수의 값은 -2, 또는 -1, 또는 0, 또는 1, 또는 0, 또는 1, 또는 0, 또는 1, 또는 0, 또는 1이 됩니다.
원자성 변수의 값이 -2, 또는 -1, 또는 0, 또는 1, 또는 0, 또는 1, 또는 0, 또는 1, 또는 0, 또는 1일 때, 스레드 A가 1을 뺐을 때, 원자성 변수의 값은 -3, 또는 -2, 또는 -1, 또는 -1, 또는 0, 또는 -1, 또는 0, 또는 -1, 또는 0, 또는 1, 또는 0, 또는 1, 또는 0, 또는 1, 또는 0, 또는 1, 또는 0, 또는 1, 또는 0, 또는 1이 됩니다.
원자성 변수의 값이 -3, 또는 -2, 또는 -1, 또는 -1, 또는 0, 또는 -1, 또는 0, 또는 -1, 또는 0, 또는 1, 또는 0, 또는 1, 또는 0, 또는 1, 또는 0, 또는 1, 또는 0, 또는 1일 때, 스레드 A가 1을 뺐을 때, 원자성 변수의 값은 -4, 또는 -3, 또는 -2, 또는 -2, 또는 -1, 또는 -2, 또는 -1, 또는 -2, 또는 -1, 또는 0, 또는 -1, 또는 0, 또는 1, 또는 -1, 또는 0, 또는 1, 또는 0, 또는 1, 또는 0, 또는 1이 됩니다.
원자성 변수의 값이 -4, 또는 -3, 또는 -2, 또는 -2, 또는 -1, 또는 -2, 또는 -1, 또는 -2, 또는 -1, 또는 0, 또는 -1, 또는 0, 또는 1, 또는 -1, 또는 0, 또는 1, 또는 0, 또는 1일 때, 스레드 A가 1을 뺐을 때, 원자성 변수의 값은 -5, 또는 -4, 또는 -3, 또는 -3, 또는 -2, 또는 -3, 또는 -2, 또는 -3, 또는 -2, 또는 -1, 또는 -2, 또는 -1, 또는 0, 또는 -2, 또는 -1, 또는 0, 또는 1, 또는 -2, 또는 0, 또는 1, 또는 0, 또는 1이 됩니다.
원자성 변수의 값이 -5, 또는 -4, 또는 -3, 또는 -3, 또는 -2, 또는 -3, 또는 -2, 또는 -3, 또는 -2, 또는 -1, 또는 -2, 또는 -1, 또는 0, 또는 -2, 또는 -1, 또는 0, 또는 1, 또는 -2, 또는 0, 또는 1일 때, 스레드 A가 1을 뺐을 때, 원자성 변수의 값은 -6, 또는 -5, 또는 -4, 또는 -4, 또는 -3, 또는 -4, 또는 -3, 또는 -4, 또는 -3, 또는 -2, 또는 -3, 또는 -2, 또는 -1, 또는 -3, 또는 -2, 또는 -1, 또는 0, 또는 -3, 또는 -2, 또는 0, 또는 1, 또는 -3, 또는 0, 또는 1이 됩니다.
원자성 변수의 값이 -6, 또는 -5, 또는 -4, 또는 -4, 또는 -3, 또는 -4, 또는 -3, 또는 -4, 또는 -3, 또는 -2, 또는 -3, 또는 -2, 또는 -1, 또는 -3, 또는 -2, 또는 -1, 또는 0, 또는 -3, 또는 -2, 또는 0, 또는 1, 또는 -3, 또는 0, 또는 1일 때, 스레드 A가 1을 뺐을 때, 원자성 변수의 값은 -7, 또는 -6, 또는 -5, 또는 -5, 또는 -4, 또는 -5, 또는 -4, 또는 -5, 또는 -4, 또는 -3, 또는 -4, 또는 -3, 또는 -2, 또는 -4, 또는 -3, 또는 -2, 또는 -1, 또는 -4, 또는 -3, 또는 -1, 또는 0, 또는 -4, 또는 -3, 또는 0, 또는 1, 또는 -4, 또는 0, 또는 1입니다.
원자성 변수의 값이 -7, 또는 -6, 또는 -5, 또는 -5, 또는 -4, 또는 -5, 또는 -4, 또는 -5, 또는 -4, 또는 -3, 또는 -4, 또는 -3, 또는 -2, 또는 -4, 또는 -3, 또는 -2, 또는 -1, 또는 -4, 또는 -3, 또는 -1, 또는 0, 또는 -4, 또는 -3, 또는 0, 또는 1, 또는 -4, 또는 0, 또는 1입니다.
원자성 변수의 값이 -7, 또는 -6, 또는 -5, 또는 -5, 또는 -4, 또는 -5, 또는 -4, 또는 -5, 또는 -4, 또는 -3, 또는 -4, 또는 -3, 또는 -2, 또는 -4, 또는 -3, 또는 -2, 또는 -1, 또는 -4, 또는 -3, 또는 -1, 또는 0, 또는 -4, 또는 -3, 또는 0, 또는 1입니다.
원자성 변수의 값이 -7, 또는 -6, 또는 -5, 또는 -5, 또는 -4, 또는 -5, 또는 -4, 또는 -5, 또는 -4, 또는 -3, 또는 -4, 또는 -3, 또는 -2, 또는 -4, 또는 -3, 또는 -2, 또는 -1, 또는 -4, 또는 -3, 또는 -1, 또는 0, 또는 -4, 또는 -3, 또는 0, 또는 1입니다.
원자성 변수의 값이 -7, 또는 -6, 또는 -5, 또는 -5, 또는 -4, 또는 -5, 또는 -4, 또는 -5, 또는 -4, 또는 -3, 또는 -4, 또는 -3, 또는 -2, 또는 -4, 또는 -3, 또는 -2, 또는 -1, 또는 -4, 또는 -3, 또는 -1, 또는 -1, 또는 -1, 또는 -1, 또는 -1, 또는 -1, 또는 -1, 또는 -1, 또는 -1, 또는 -1, 또는 -1, 또는 -1, 또는 -1, 또는 -1, 또는 -1,
2025-04-05 09:22