我有两个执行线程,Routine 1 {// do something}Routine 2 {// do something}是否可以从例程1中暂停例程2的执行几秒钟,这怎么可能?
2 回答
心有法竹
TA贡献1866条经验 获得超5个赞
无法控制另一个goroutine的执行。Goroutines是合作的。他们彼此之间不占主导地位。
您可以做的是将点放在例程2中,在例程2中检查是否允许继续进行。如
// do stuff
select {
case <-wait:
<-resume
default:
}
然后例程1可以告诉例程1可以向例程2发送一个信号,告诉它等待:
wait <- true
// whatever stuff goes here
resume <- true
为什么要暂停goroutine?这可能有助于更好地回答您的问题。最好从您尝试做的事情而不是您想做的事情开始。这样,您就可以找到如何用语言实现自己真正想要的东西,而不是被替代为最初想像的实现方法的替代品。
- 2 回答
- 0 关注
- 201 浏览
添加回答
举报
0/150
提交
取消