1.软文推荐

2.软文推荐

3.软文推荐

select 是Go语言中常用的一个关键字,Linux再也早也引入了这个函数,用来实现非阻塞的一种方式,一个select语句用来选择哪个case中的发送或接收操作可以被立即执行。它类似于switch语句,但是它的case涉及到channel有关的I/O操作。

select{
case case处理语句
case chan2 case处理语句
default:
// 如果上面都没有成功,则进入default处理语句
}
12345678

go有一个特殊的关键字select,它允许用户从多个通道中选择一个通道来接收。

package main

import (
   "fmt"
   "time"
)

func ping1 (c chan string){
   time.Sleep(time.Second*1)
   c "ping on channel1"
}

func ping2 (c chan string){
   time.Sleep(time.Second*2)
   c "ping on channel2"
}

func main(){
   channel1 := make(chan string)
   channel2 := make(chan string)
   go ping1(channel1)
   go ping2(channel2)
   select {
   case msg1 := "received",msg1)
   case msg2 := "received",msg2)
   case "no messages")
   }
}

如果先接收到channel1就先执行channel1分支,如果接收到channel2,就执行channel2分支,如果在规定的时间没有接收到消息,就会执行超时的分支。 程序调用内置的close函数关闭了通道,关闭通道并不会导致通道的机能完全停止,他的作用就是通知其他正在尝试从这个通道接收值的goroutine,这个通道已经不会再接受到任何值了。 case msg, ok1 =

package main

import (
   "fmt"
)

func callerA(c chan string) {
   c "hello world"
   close(c)
}

func callerB(c chan string) {
   c "hello zhangsan"
   close(c)
}

func main() {
   a, b := make(chan string), make(chan string)
   go callerA(a)
   go callerB(b)
   var msg string
   ok1, ok2 := truetrue
   for ok1 || ok2 {
       select {
       case msg, ok1 = if ok1 {
               fmt.Printf("%s from A
", msg)
           }
       case msg, ok2 = if ok2 {
               fmt.Printf("%s from B
", msg)
           }
       }
   }
}

本文来源:www.lxlinux.net/10986.html,若引用不当,请联系修改。

相关文章 8

1

菲律宾服务器租用价格(菲律宾房屋出租网站) 3分钟前

目录:1、租用香港服务器和租用菲律宾服务器有什么区别?2、菲律宾服务器租用贵吗?3、租用菲律宾服务器有什么优势?租用香港服务器...

2

讲解一下Oracle 分析函数 ROW_NUMBER() 3分钟前

本篇文章重点为大家讲解一下Oracle 分析函数 ROW_NUMBER() 的使用方法,有需要的小伙伴可以参考一下。 1、row_number() over()排序功能: row_numbe...

3

Linux系统开启FTP服务详细步骤 4分钟前

FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。在Linux系统中如何开启FTP服务?下面良许教程网为大家分享...

4

namecheap域名(namecheap域名备案) 6分钟前

目录:1、namecheap如何出售域名2、架站三部曲:NAMECHEAP域名申请及解析3、NameCheap域名转入方法另附新域名注册namecheap如何出售域名 出售域名...

5

Linux系统网桥搭建教程 8分钟前

网桥也叫桥接器,是连接两个局域网的一种存储/转发设备,简单的网桥有两个端口,复杂些的网桥可以有更多的端口。下面良许教程网为大...

6

部署MongoDB分片集群 9分钟前

在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求。 当MongoDB存储海量的数据时,一台机器可能不足以存储数...

7

关于关键词优化去联火星6下拉的信息 11分钟前

目录:1、关键字优化的技巧是什么?2、关键词优化有什么技巧吗?3、网站主关键词怎么优化,最好给出具体的步骤和建议4、关键词优化方...

8

可不可以更改const关键字 13分钟前

常量表达式是指在编译器编译时期就可以的到值的表达式,例如:const int a = 3,虽然听起来很简单,但实际上很容易犯错。本文简要总结它...