Есть ли способ гарантировать, что goroutine будет работать только в конкретном потоке ОС? Например, когда GUI-операции должны выполняться в потоке графического интерфейса, но может быть несколько goroutines с графическим интерфейсом.Принудительные goroutines в ту же самую нить
GOMAXPROCS(1)
выполняет работу технически, но это побеждает цель многопоточности.
LockOSThread()
также работает, но это предотвращает запуск другого горутина в этой нити.
Есть ли способ сделать это, или все, что требует того же потока, также работает в одном и том же городе?
-1 Ваш ответ на вопрос «Есть ли способ гарантировать, что goroutine будет работать только в конкретном потоке ОС?» «пишет Goroutine, которая работает в потоке графического интерфейса»? Как это должно мне помочь? –
Вы уже указали, что LockOSThread позволяет блокировать goroutine для определенного потока. Просто сделайте это для потока GUI. –
Это позволяет вам блокировать goroutine в потоке * current *, а не в произвольном конкретном потоке. – robx