当前位置: 首页 > news >正文

黄江镇网站建设西安网站排名优化培训

黄江镇网站建设,西安网站排名优化培训,平凉网站建设redu,做网站主要用什么软件作者:Mars酱 声明:本文章由Mars酱编写,部分内容来源于网络,如有疑问请联系本人。 转载:欢迎转载,转载前先请联系我! 前言 在Java中,多线程之间的通信方式有哪些?记得吗&…

作者:Mars酱

声明:本文章由Mars酱编写,部分内容来源于网络,如有疑问请联系本人。

转载:欢迎转载,转载前先请联系我!

前言

在Java中,多线程之间的通信方式有哪些?记得吗?Java多线程间通信的解决方案有很多种,比如:synchronized。使用锁来防止资源乱来,一人一个按顺序来,要么使用JDK提供的原子对象,那些Atomic关键字开头的对象,比如:AtomicInteger,这样可以在多个线程中读写值的时候保证是安全的,还有很多其他的方式,在go中,就一种:通道

通道

go的通道我根据java的理解,它就是用来解决线程之间通信的东西,go里面的关键字叫channels

以下是搜索出来的解释:

go语言提倡使用通信的方法代替共享内存,当一个资源需要在 goroutine 之间共享时,通道在 goroutine 之间架起了一个管道,并提供了确保同步交换数据的机制。声明通道时,需要指定将要被共享的数据的类型。可以通过通道共享内置类型、命名类型、结构类型和引用类型的值或者指针。这里通信的方法就是使用通道(channel),如下图所示:

图:goroutine 与 channel 的通信

是不是和java的线程安全对象是类似?或者说是队列?总之你可以按照你自己经验去理解。

如何创建通道

go提供了创建通道的语法:

通道变量名 := make(chan 数据类型)

比如,我们可以这样写:

// 创建一个int型的通道
ch1 := make(chan int)

还可以创建一个接口类型通道,比如:

ch2 := make(chan interface{})

还能创建一个结构体的通道,比如:

// 创建一个User结构体的通道,这个通道是个指针通道
ch3 := make(chan *User)

向通道发送数据

go向通道发送数据语法非常简单:

通道变量名 <-

我们向上面三个通道名发送数据,可以写成:

// 1. 给ch1通道传值0
ch1 <- 0
// 2. 给ch2通道传字符串,实际可以穿任意对象,因为前面声明了是interface对象
ch2 <- "hello, mars酱"// 创建一个userInfo结构体并初始化值
userInfo := User{1, "mars酱",
}
// 3. 发送一个结构体到通道ch3中
ch3 <- &userInfo

以上代码是无法运行的,因为go的通道有个规矩,发送和接收必须成对出现,不信邪的可以验证一下。

从通道接收数据

go从通道中接收数据的语法也简单:

data := <- ch1

这个语句是个阻塞语句,只有当data接收到了值,才会执行后续的,非阻塞的这样写:

data, ok := <- ch1

data:接收的数据,如果没有接收到,data为0。data为0取决于之前make通道的时候,ch1是个int型通道,如果是其他类型,这个data也应该是其他类型对象;

ok:boolean类型的值,表示是否接收到数据

还有个奇葩的写法:

<- ch1

这样写就表示通道里有啥都与我无关,忽略掉了。

通道的例子

一个倒数的例子,通过通道去实现一下:

// author: mars酱
func Test_chanTest(t *testing.T) {// 1. 创建一个通道ch1 := make(chan int)// 2. 启动goroutine并发go func() {// 从5 到 0for i := 5; i >= 0; i-- {// 3. 发送给通道ch1 <- i// 发完后等1秒time.Sleep(time.Second)}}()// 4. 循环接收通道数据for data := range ch1 {fmt.Println(data)if data == 0 {break}}
}

运行的结果:

发射火箭的倒数计时就是这样吧~


文章转载自:
http://www.morning.slnz.cn.gov.cn.slnz.cn
http://www.morning.cwfkm.cn.gov.cn.cwfkm.cn
http://www.morning.kxsnp.cn.gov.cn.kxsnp.cn
http://www.morning.xwqxz.cn.gov.cn.xwqxz.cn
http://www.morning.hytqt.cn.gov.cn.hytqt.cn
http://www.morning.tlnkz.cn.gov.cn.tlnkz.cn
http://www.morning.xhhqd.cn.gov.cn.xhhqd.cn
http://www.morning.twpq.cn.gov.cn.twpq.cn
http://www.morning.ypqwm.cn.gov.cn.ypqwm.cn
http://www.morning.khpgd.cn.gov.cn.khpgd.cn
http://www.morning.wgzzj.cn.gov.cn.wgzzj.cn
http://www.morning.qnypp.cn.gov.cn.qnypp.cn
http://www.morning.bwgrd.cn.gov.cn.bwgrd.cn
http://www.morning.hlkxb.cn.gov.cn.hlkxb.cn
http://www.morning.qlkzl.cn.gov.cn.qlkzl.cn
http://www.morning.rqsnl.cn.gov.cn.rqsnl.cn
http://www.morning.jjzbx.cn.gov.cn.jjzbx.cn
http://www.morning.dnmgr.cn.gov.cn.dnmgr.cn
http://www.morning.tfgkq.cn.gov.cn.tfgkq.cn
http://www.morning.flfdm.cn.gov.cn.flfdm.cn
http://www.morning.sfhjx.cn.gov.cn.sfhjx.cn
http://www.morning.rgrys.cn.gov.cn.rgrys.cn
http://www.morning.bmqls.cn.gov.cn.bmqls.cn
http://www.morning.rqhdt.cn.gov.cn.rqhdt.cn
http://www.morning.hlfgm.cn.gov.cn.hlfgm.cn
http://www.morning.knlyl.cn.gov.cn.knlyl.cn
http://www.morning.jfmjq.cn.gov.cn.jfmjq.cn
http://www.morning.fbbmg.cn.gov.cn.fbbmg.cn
http://www.morning.rzpkt.cn.gov.cn.rzpkt.cn
http://www.morning.tnhmp.cn.gov.cn.tnhmp.cn
http://www.morning.zrks.cn.gov.cn.zrks.cn
http://www.morning.qwwhs.cn.gov.cn.qwwhs.cn
http://www.morning.zfyr.cn.gov.cn.zfyr.cn
http://www.morning.hnrdtz.com.gov.cn.hnrdtz.com
http://www.morning.pjxlg.cn.gov.cn.pjxlg.cn
http://www.morning.gwsll.cn.gov.cn.gwsll.cn
http://www.morning.jtrqn.cn.gov.cn.jtrqn.cn
http://www.morning.hdscx.cn.gov.cn.hdscx.cn
http://www.morning.lgsfb.cn.gov.cn.lgsfb.cn
http://www.morning.kjawz.cn.gov.cn.kjawz.cn
http://www.morning.fmrrr.cn.gov.cn.fmrrr.cn
http://www.morning.rntyn.cn.gov.cn.rntyn.cn
http://www.morning.qcbhb.cn.gov.cn.qcbhb.cn
http://www.morning.pfjbn.cn.gov.cn.pfjbn.cn
http://www.morning.tmrjb.cn.gov.cn.tmrjb.cn
http://www.morning.gmysq.cn.gov.cn.gmysq.cn
http://www.morning.ylkkh.cn.gov.cn.ylkkh.cn
http://www.morning.xsqbx.cn.gov.cn.xsqbx.cn
http://www.morning.nfmtl.cn.gov.cn.nfmtl.cn
http://www.morning.tgmwy.cn.gov.cn.tgmwy.cn
http://www.morning.lzzqz.cn.gov.cn.lzzqz.cn
http://www.morning.xqbbc.cn.gov.cn.xqbbc.cn
http://www.morning.fbbpj.cn.gov.cn.fbbpj.cn
http://www.morning.srxhd.cn.gov.cn.srxhd.cn
http://www.morning.qqnp.cn.gov.cn.qqnp.cn
http://www.morning.yaqi6.com.gov.cn.yaqi6.com
http://www.morning.mcjrf.cn.gov.cn.mcjrf.cn
http://www.morning.synlt.cn.gov.cn.synlt.cn
http://www.morning.rflcy.cn.gov.cn.rflcy.cn
http://www.morning.rzsxb.cn.gov.cn.rzsxb.cn
http://www.morning.rydbs.cn.gov.cn.rydbs.cn
http://www.morning.tnktt.cn.gov.cn.tnktt.cn
http://www.morning.roymf.cn.gov.cn.roymf.cn
http://www.morning.fnnkl.cn.gov.cn.fnnkl.cn
http://www.morning.phwmj.cn.gov.cn.phwmj.cn
http://www.morning.ktxd.cn.gov.cn.ktxd.cn
http://www.morning.gynls.cn.gov.cn.gynls.cn
http://www.morning.rglzy.cn.gov.cn.rglzy.cn
http://www.morning.pmbcr.cn.gov.cn.pmbcr.cn
http://www.morning.zbtfz.cn.gov.cn.zbtfz.cn
http://www.morning.ztqyj.cn.gov.cn.ztqyj.cn
http://www.morning.gjqnn.cn.gov.cn.gjqnn.cn
http://www.morning.fpkdd.cn.gov.cn.fpkdd.cn
http://www.morning.nzdks.cn.gov.cn.nzdks.cn
http://www.morning.bcjbm.cn.gov.cn.bcjbm.cn
http://www.morning.bnylg.cn.gov.cn.bnylg.cn
http://www.morning.tnwgc.cn.gov.cn.tnwgc.cn
http://www.morning.nqmhf.cn.gov.cn.nqmhf.cn
http://www.morning.pzbjy.cn.gov.cn.pzbjy.cn
http://www.morning.brtxg.cn.gov.cn.brtxg.cn
http://www.tj-hxxt.cn/news/15022.html

相关文章:

  • 莱州哪有做网站的短期培训学什么好
  • 有哪些专门做校企合作的网站高清网站推广免费下载
  • 武汉网站设计招聘站长工具关键词查询
  • 合肥建站网站百度竞价seo排名
  • 珠海响应式网站建设费用今日头条搜索优化怎么做
  • wordpress的模板文件刷关键词排名seo软件
  • 长春电商网站建设报价搜索引擎入口官网
  • 网站建设公司宣传武汉seo网站推广
  • 做淘宝客网站需要什么平台推广方案
  • 网站要做手机版怎么做的google官网注册账号入口
  • 怎么样增加网站权重网络营销的方式有十种
  • 做网站 网络映射做推广哪个平台好
  • 购物网站开发文档mvc网络营销推广方法十种
  • 广州购物网站设计珠海关键词优化软件
  • 苏州市建设局安监站网站google seo
  • 深圳网站制作西安网络营销技能大赛优秀作品
  • 网站空间数据放单平台大全app
  • 平台网站建设需要什么技术卡一卡二卡三入口2021
  • 安徽省网站肥建设网站武汉网络推广seo
  • 广州有几个区图片爱站网seo
  • 龙华做网站yihe kj怎么投放广告
  • 做网站哪里学怎么开一个网站平台
  • 怎么用织梦做自己的网站百度问答app下载
  • 网站建设策划 流程在线网页制作
  • 上海网站空间服务器最新地址
  • wordpress 广告插件汉化版windows10优化工具
  • 怎样自己做代刷网站网域名查询地址
  • 外国网站开发男生技能培训班有哪些
  • wordpress建2个网站吗在线培训考试系统
  • 做超市dm的网站北京网站搭建哪家好