'da eşzamanlı isteği nasıl ele alır? Go'nun Google App Engine'de eşzamanlı istekleri nasıl ele aldığı konusunda biraz kafam karıştı. Bu yüzden birilerinin biraz netlik sağladığını umuyorum. İşte Go, Google App Engine
ben topladık gerçekler:Git App Engine üzerinde dişli bekar. - Git App Engine üzerinde dişli tek ise this is because it is possible to do arbitrary pointer arithmetic by creating race conditions with multiple threads
sonra 3 tartışmaya açıktır etmektedir. Bu, 1 ve 2'yi bırakır. App Engine'de Git tekil iş parçacığıysa ve iş parçacıklarının G/Ç için engelleme sırasında yürütmeye devam etmesi gerekiyorsa, bir Uygulama Altyapısı Git örneği G/Ç'de beklerken tüm goroutines'i engeller.
Bu doğru mu? Değilse, Go'nun eşzamanlılığı gerçekten App Engine'de nasıl çalışır?
Bir şeyleri ölçmeye yardımcı olmak için. Bir bağlantıyı 30 saniye boyunca açık tutsaydım. Eşzamanlı bağlantılar tek bir AE Go örneği nasıl korunabilir?
Teşekkür ederiz.
DÜZENLEME: Burada Go Örneği sağlayacak özellik isteği daha sonra 10 eşzamanlı istek Allow configurable limit of concurrent requests per instance tanıtıcı var. Lütfen buna dikkat edin.
GOMAXPROCS = 1'in ayarlanması (GAE'nin yaptığı şey), yalnızca her zaman tam olarak bir etkin iş parçacığı olan bir etkin iş parçacığının olacağı anlamına gelir. Hala engellenmiş birkaç parçanız olabilir (saymazlar). Ayrıca, Go kütüphanesinin arka planda epoll kullandığını, dolayısıyla I/O'nun tüm bir iş parçacığını engellemesinin olası olmadığını (ancak Go'da bir iş parçacığını engellemenin başka yolları da vardır) unutmayın. GAE genel 10 iplik sınırı hakkında bir şey bilmiyorum. – tux21b
Eşzamanlı istek sınırı şimdi yapılandırılabilir (en fazla 80), bkz. Http://stackoverflow.com/a/37364981/943833 – Roganartu