Czy istnieje sposób, aby zapewnić, że goroutine będzie działać tylko w określonym wątku systemu operacyjnego? Na przykład, gdy operacje GUI muszą działać w wątku GUI, ale może istnieć wiele goroutin z uruchomionym kodem GUI.Zmuszanie goroutines do tego samego wątku
GOMAXPROCS(1)
wykonuje zadanie technicznie, ale to pokonuje cel wielowątkowości.
LockOSThread()
działa również, ale to uniemożliwia działanie innych goroutine w tym wątku.
Czy istnieje sposób, aby to zrobić, czy też wszystko, co wymaga tej samej nitki, działa również w tej samej goroutine?
-1 Twoja odpowiedź na pytanie "Czy istnieje sposób na zapewnienie, że goroutine będzie działał tylko w określonym wątku systemu operacyjnego?" to "napisz Goroutine'a, który działa w wątku GUI"? Jak to ma mi pomóc? –
Już wskazałeś, że LockOSThread pozwala zablokować goroutine do określonego wątku. Po prostu zrób to dla wątku GUI. –
Umożliwia to zablokowanie goroutine do wątku * current *, a nie do dowolnego konkretnego wątku. – robx