0
Google App Engine 채널 API가 있지만 두 개 이상의 goroutines 및/또는 작업 대기열에서 메시지를 보내려고하면 어떻게됩니까? 예 :App Engine 채널 API의 스레드 안전성/원 자성
go channel.Send(context, clientID, "Hello")
go channel.Send(context, clientID, "World")
GAE Go에서는 모든 goroutine이 단일 스레드로 다중화된다는 것을 알고 있습니다. 그러나 I/O 중에는 선점 (pre-emption)이 가능하며, 채널 전송은 I/O로 한정됩니다.
GAE 개발자 서버가 모든 요청을 직렬화하는 것처럼 보이므로 중복되는 채널이 표시되지 않습니다. 프로덕션 서버는 일부 요청 동시성을 허용하는 것으로 보이지만 채널 전송은 원자 또는 최소한 다른 스레드/goroutines에서 호출하기에 안전합니다.