在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
转自老外的文章:http://tleyden.github.io/blog/2013/11/23/understanding-chan-chans-in-go/
A channel describes a transport of sorts. You can send a thing down that transport. When using a chan chan, the thing you want to send down the transport is another transport to send things back. They are useful when you want to get a response to something, and you don’t want to setup two channels (it’s generally considered bad practice to have data moving bidirectionally on a single channel) Visual time lapse walkthroughKeep in mind that Goroutine C is the “real consumer” even though it will be the one which writes to the request channel. The request channel starts out empty. Goroutine C passes a “response channel” to go routine D via the request channel Goroutine C starts reading from the (still empty) response channel. Goroutine D writes a string to the response channel Goroutine C now is able to read a value from response channel, and get’s the “wassup!” message And now we are back to where we started Here is some code that uses chan chan’s
This code can be run on Go playground |
请发表评论