Existe-t-il un moyen de garantir qu'un goroutine fonctionnera uniquement dans un thread de système d'exploitation spécifique? Par exemple, lorsque les opérations de l'interface graphique doivent s'exécuter dans le thread graphique, plusieurs goroutines peuvent exécuter le code de l'interface graphique.Forcer des goroutines dans le même thread
GOMAXPROCS(1)
fait le travail techniquement, mais cela va à l'encontre du but du multithreading.
LockOSThread()
fonctionne également, mais cela empêche tout autre goroutine de fonctionner dans ce thread.
Existe-t-il un moyen de le faire, ou tout ce qui nécessite le même thread doit-il également fonctionner dans le même goroutine?
-1 Votre réponse à "Existe-t-il un moyen de garantir qu'un goroutine fonctionnera uniquement dans un thread de système d'exploitation spécifique?" est "écrire un Goroutine qui s'exécute dans le fil de l'interface graphique"? Comment est-ce censé m'aider? –
Vous avez déjà signalé que LockOSThread vous permet de verrouiller le goroutine sur un thread spécifique. Faites-le simplement pour le fil de l'interface graphique. –
Cela vous permet de verrouiller le goroutine sur le thread * current *, pas sur un thread spécifique arbitraire. – robx