当前位置: 首页 > 网络应用技术

Golang Chan查询

时间:2023-03-08 12:50:05 网络应用技术

  当我以前看到多线程通信时,我看到了Go的管道。那时,我觉得这东西很棒,因为无论我以前一直在接触过什么,没有这样的事情。这是第一次是不可避免的好奇心。因此,我想看看它是什么。显然,管道是语言级别的功能,因此我认为我需要移交他的来源。它仍然很受益。

  如果您想知道他是什么,没有什么比直接看他的定义更直接的了。但是定义在哪里?在哪里找到?还记得我们是如何创建的吗?但是,当我寻找过去的发现方法只是函数的函数。

  这仍然没有特定的功能实现。让我们编译。编写以下内容:

  裁定订单:

  尽管我们无法理解汇编,但其中一个吸引了我的注意。

  称呼。美丽,只是找到他。

  我找到了他,这是指针对象。我整理了对象的字段(但它们本身也有笔记):

  可以看出,管道只是队列加上锁。

  仍在分析该方法,在发送数据时调用该函数。它的实施简单易懂:

  然后检查实际实现,功能步骤如下(个人理解,测试使用的某些代码已被我删除。):::::

  尽管最终块不了解太多,但发送数据的一般过程很明确:

  当您看到该功能的注释时,未锁定的操作如下:

  从这个含义看,关键字与语法糖有点相似,其内部转换为对呼叫功能的简单判断。

  至于接收数据的方法,其内部实现类似于发送数据。方法。

  源代码简要介绍了。尽管我对此不了解,但我也有一般的理解。

  只需使用它。概括。

  最后,看完圆圈后,我觉得这不是很复杂。这是一个队列,接受了一端,并发送了一端。但是,它对多种关联处理进行了很多优化。如果它与Coroutine合作,如果它灵活地使用了,它应该具有良好的效果。然后,然后

  原始:https://juejin.cn/post/71036985871084581