두 개의 작업자를 사용하도록 구성된 Puma 서버가 있으며 각각 16 개의 스레드가 있습니다. 그리고 푸마를 사용하여 스레딩을 허용하도록 config.threadsafe!
을 사용 중지했습니다.레일 - 퓨마 작업자와의 동시성 문제
이제 코드가 있는데, 거기에 상수로 Mutex
을 사용해도 threadsafety를 사용하지 않을 것입니다. 동시성 문제를 피하기 위해이 코드를 한 번에 하나의 푸마 스레드 만 실행하도록하고 Mutex
을 사용합니다.
자, 내 질문은,
Mutex
는 퓨마 스레드를 사용하는 동안 여러 노동자, threadsafety를 주입하기 위해 노력합니까? 내가 알기에, 작업자는 별도의 프로세스이므로 뮤텍스는 작동하지 않습니다.- Mutex가 위와 같이 작동하지 않는 경우 perticular 코드에서 threadsafety를 사용하는 방법은 무엇입니까?
코드 예제
class MyService
...
MUTEX = Mutex.new
...
def initialize
...
end
def doTask
MUTEX.synchronize do
...
end
end
end