¿Hay alguna manera de garantizar que un goroutine se ejecute solo en un hilo específico del sistema operativo? Por ejemplo, cuando las operaciones de la GUI deben ejecutarse en el hilo de la GUI, pero puede haber múltiples goroutines corriendo el código GUI.Forzar los goroutines en el mismo hilo
GOMAXPROCS(1)
hace el trabajo técnicamente, pero eso frustra el propósito del multihilo.
LockOSThread()
funciona también, pero eso evita que cualquier otra rutina de ejecución se ejecute en ese hilo también.
¿Hay alguna manera de hacer esto o todo lo que requiere el mismo hilo también se ejecuta en la misma rutina?
-1 Su respuesta a "¿Hay alguna manera de asegurarse de que una rutina de administración se ejecute solo en una secuencia de sistema operativo específica?" es "escribir un Goroutine que se ejecuta en el hilo de GUI"? ¿Cómo se supone que esto me ayudará? –
Ya ha señalado que LockOSThread le permite bloquear la rutina de un hilo específico. Simplemente hazlo para el hilo de GUI. –
Eso le permite bloquear la rutina con el subproceso * actual *, no con un subproceso específico arbitrario. – robx