进程、线程、协程

- 进程:太重

- 线程:上下文切换开销太大

- 协程:轻量级的线程,简洁的并发模式

Golang协程:goroutine

Hello world

package main

import "fmt"

func main() {
fmt.Println("Hello world!")
}

  

Golang协程特性实践

- go发起一个协程

- channel协程间通信,通道

- buffered channels具备缓冲队列的通道

go协程和channel初次使用

package main

import (
"fmt"
) func main() {
message := make(chan string)//定义一个string型的channel
go func() {
message <- "hello goroutine!"
}() fmt.Println( <- message )
fmt.Println("Hello world!")
}

多个协程

package main

import (
"fmt"
"time"
) func main() {
message := make(chan string) //定义一个string型的channel
go func() {
message <- "hello goroutine!"
}()
go func() {
time.Sleep( * time.Second)
str := <-message
str = str + "I'm goroutine!"
message <- str
}()
time.Sleep( * time.Second)
fmt.Println(<-message)
fmt.Println("Hello world!")
}

  

  

最新文章

  1. java swing 双人五子棋源代码
  2. 分布式开放消息系统(RocketMQ)的原理与实践
  3. loadRunner 负载机连接错误分析
  4. 基于jquery实现的上传图片及图片预览效果代码
  5. hihoCoder 1385 : A Simple Job(简单工作)
  6. jsp错误解决办法
  7. [BS-16] 尽量将View的Opaque属性设置为YES(默认就是YES)
  8. hive内置函数大全
  9. svn checkout操作
  10. 前端基础之css
  11. Linux显示登录Shell信息
  12. brk和mmap(转)
  13. linux查看分区是否开启acl权限
  14. iead2018创建JavaWe工程
  15. Gitee(码云)、Github同时配置ssh key
  16. 继承ActionSupper类报错 --Struts2
  17. nodejs -- http模块. request() 方法 , get方法.
  18. 多媒体文件格式之AVI
  19. vue复选框选中值获取
  20. Microsoft Office Access

热门文章

  1. Oracle Help 类
  2. 100、神器的 routing mesh (Swarm07)
  3. 常见Http访问错误小结
  4. 键盘事件 Ctrl+p 模拟(vue)
  5. MySQL--高性能MySQL笔记一
  6. feign 多参数问题
  7. Spring Boot整合actuator实现监控管理
  8. python之SSH远程登录
  9. 关于spring读取配置文件的两种方式
  10. 享元模式&lt;Flyweight Pattern&gt;