www.2017338.comGo通道实例

Git ww9992019com 发表于 1 周前

www.2017338.com开户请拨15974937077王源吸烟后登央视成都武侯区hfebH9<div style="width:100%;float:left;" class="article-content">

                <input type="hidden" name="article_id" id="article_id" value="9472">
                <input type="hidden" name="catid" id="catid" value="0">

                <p>通道是连接并发<code>goroutine</code>的管道。可以从一个<code>goroutine</code>向通道发送值,并在另一个<code>goroutine</code>中接收到这些值。</p>

<p>使用<code>make(chan val-type)</code>创建一个新通道,通道由输入的值传入。使用通道 <code>&lt;-</code> 语法将值发送到通道。 这里从一个新的<code>goroutine</code>发送“<code>ping</code>”到在上面的消息通道。</p>

<p><code>&lt;-channel</code>语法从通道接收值。在这里,将收到上面发送的“<code>ping</code>”消息并打印出来。当运行程序时,“<code>ping</code>”消息通过通道成功地从一个<code>goroutine</code>传递到另一个<code>goroutine</code>。默认情况下发送和接收块,直到发送方和接收方都准备好。此属性允许在程序结束时等待“<code>ping</code>”消息,而不必使用任何其他同步。</p>

<blockquote>

<p>所有的示例代码,都放在 <code>F:\worksp\golang</code> 目录下。安装Go编程环境请参考:<a href="http://www.yiibai.com/go/go_environment.html">http://www.yiibai.com/go/go_environment.html</a> </p>

</blockquote>

<p><code>channels.go</code>的完整代码如下所示 -</p>

<pre><code class="lang-go">package main

import "fmt"

func main() {

// Create a new channel with `make(chan val-type)`.

// Channels are typed by the values they convey.

messages := make(chan string)



// _Send_ a value into a channel using the `channel &lt;-`

// syntax. Here we send `"ping"`  to the `messages`

// channel we made above, from a new goroutine.

go func() { messages &lt;- "ping" }()



// The `&lt;-channel` syntax _receives_ a value from the

// channel. Here we'll receive the `"ping"` message

// we sent above and print it out.

msg := &lt;-messages

fmt.Println(msg)

}

</code></pre>

<p>执行上面代码,将得到以下输出结果 - </p>

<pre><code class="lang-go">F:\worksp\golang&gt;go run channels.go

ping

</code></pre>

                <br>
                <p style="text-align:center;float:left;width:100%;margin-top:24px;margin-bottom:18px;">
                        <button class="layui-btn layui-btn-danger" id="btn-reward"> ¥ 我要打赏 </button>  
                        <button class="layui-btn" id="article-perfect">
                            <i class="layui-icon layui-icon-edit"></i>教程纠错
                        </button>
                        <button class="layui-btn layui-btn-normal" id="action-collection">
                            <i class="layui-icon layui-icon-rate"></i>收藏
                        </button>
                </p>



                <div style="width:100%;margin-bottom: 16px; height: 32px;margin-top:18px;float:left;">

                    <span style="float:left;">上一篇:<a href="http://f2e.im/u/ww9992019com" title="Go程序实例"><i class="layui-icon"></i>
                            Go程序实例</a></span>
                                            <span style="float:right;">下一篇:<a href="http://f2e.im/u/ww9992019com" style="float:right;" title="下一篇:Go通道缓冲实例"><i class="layui-icon"></i>
                            Go通道缓冲实例</a></span>
                                            <div id="googlead" style="float:left;margin-top:8px;">
                        <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
                        <!-- yiibai下方 -->
                        <ins class="adsbygoogle" style="display:inline-block;width:728px;height:90px" data-ad-client="ca-pub-1090193214637198" data-ad-slot="6494738921"></ins>
                        <script>
                            (adsbygoogle = window.adsbygoogle || []).push({});
                        </script>
                    </div>
                </div>

                <div style="width:100%;margin-top:18px;float:left;">


            </div>
暂无回复,说出你的观点吧
登录后即可参与回复