Google App Engine の Channel API を使用してメッセージを送信しようとしましたが、2 つ以上のゴルーチンやタスク キューから送信された場合はどうなりますか? 例えば
go channel.Send(context, clientID, "Hello")
go channel.Send(context, clientID, "World")
GAE Go では、すべてのゴルーチンが 1 つのスレッドに多重化されていることを理解しています。ただし、これでも I/O 中のプリエンプションが可能であり、おそらくチャネル送信は I/O として認定されます。
GAE 開発サーバーはすべての要求をシリアル化するように見えるので、重複するチャネル送信は見られません。本番サーバーはリクエストの同時実行を許可しているようですが、チャネル送信はアトミックであるか、少なくとも異なるスレッド/ゴルーチンから安全に呼び出すことができます。