1. 首页
  2. 编程语言
  3. 其他
  4. 浅谈golang for 循环中使用协程的问题

浅谈golang for 循环中使用协程的问题

上传者: 2021-12-30 05:49:39上传 PDF文件 100.56 KB 热度 8次

很有可能(随机)所有协程执行的task都是列表中的最后一个task,也可能不是。在题目二中,协程函数体中并没有直接引用循环变量task,而是使用的参数与协程进行了绑定。而在创建协程时,循环变量task作为函数参数传递给了协程。参数传递的过程实际上也生成了新的变量,也即间接完成了绑定。因为如果不阻塞住主函数,主函数一结束,程序就会结束。协程并非像线程那样,是由CPU中断来触发切换的。它不是应用程序能控制的。即使你在线程里写了死循环,只要周期一到,CPU产生终端,死循环会被打断,重新调度。估计系统调用时也是这个语句起的作用。

用户评论