为了账号安全,请及时绑定邮箱和手机立即绑定

Go中并发例程的打印问题

Go中并发例程的打印问题

Go
SMILET 2021-05-07 13:12:03
我有三个这样的并发例程,func Routine1() {Print (value a, value b, value c)Print (value a, value b, value c)Print (value a, value b, value c)}func Routine2() {Print (value e, value f, value g)Print (value e, value f, value g)Print (value e, value f, value g)}func Routine3() {Print (value x, value y, value z)Print (value x, value y, value z)Print (value x, value y, value z)}func main() {go Routine1(command12, response12, command13, response13)go Routine2(command12, response12, command23, response23)Routine3(command13, response13, command23, response23)}现在,我面临的问题是,由于三个并发例程的结果,有时会发生某些情况,有时print语句执行不正确,这意味着无法整体打印,另一幅打印插入了某些东西。例如,例程1的Print(值a,值b,值c)给出的输出类似于值a,值b,值g,其中值g由例程2插入。有人可以建议我如何停止它?我已经尝试过同步互斥程序。但是,可能是因为我的代码太长,可能是因为我无法以正确的方式进行锁定解锁,所以它给出了死锁错误。有人可以建议我如何以简单的方式或以风险较小的sync-mutex过程实现这些方法。关于我的这个问题的更多信息可以在这里找到。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 262 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信