有没有办法确保goroutine只能在特定的OS线程中运行?例如,当GUI操作必须在GUI线程中运行时,可能存在多个运行GUI代码的goroutine.
GOMAXPROCS(1) 在技术上做的工作,但这违背了多线程的目的.
LockOSThread() 也工作,但这也阻止任何其他goroutine在该线程中运行.
有没有办法做到这一点,或者所有需要相同线程的东西也必须在同一个goroutine中运行?
据我所知,目前还没有.我认为执行此操作的"类似"方法是编写一个在GUI线程中运行的Goroutine,以及通过通道发送的其他goroutine的服务请求.例如,您可以从接受函数指针的通道读取它,并执行这些函数.