文档章节

Go 中的协程使用

兔之
 兔之
发布于 2017/02/15 17:48
字数 180
阅读 15
收藏 0

《An Introduction to Programming in Go》中这样介绍协程

Large programs are often made up of many smaller sub-programs. For example a web server handles requests made from web browsers and serves up HTML web pages in response. Each request is handled like a small program. It would be ideal for programs like these to be able to run their smaller components at the same time (in the case of the web server to handle multiple requests). Making progress on more than one task simultaneously is known as concurrency. Go has rich support for concurrency using goroutines and channels.

示例

package main

import ("fmt")

func f(n int) {
	for i := 0; i< 10; i++ {
		fmt.Println(n, ":", i)
	}
}

func main() {
	go f(0)
	var input string
	fmt.Scanln(&input)
}

使用 go 关键字 + 函数名指明函数使用协程。

结果打印

0 : 0
0 : 1
0 : 2
0 : 3
0 : 4
0 : 5
0 : 6
0 : 7
0 : 8
0 : 9

© 著作权归作者所有

共有 人打赏支持
上一篇: Go 文件读写
兔之
粉丝 67
博文 247
码字总数 95896
作品 7
深圳
程序员
私信 提问
Kotlin Coroutines(协程) 完全解析(三),封装异步回调、协程间关系及协程的取消

Kotlin Coroutines(协程) 完全解析系列: Kotlin Coroutines(协程) 完全解析(一),协程简介 Kotlin Coroutines(协程) 完全解析(二),深入理解协程的挂起、恢复与调度 Kotlin Coroutines(...

JohnnyShieh
11/16
0
0
swoole| swoole 协程初体验

date: 2018-5-30 14:31:38 title: swoole| swoole 协程初体验 description: 通过协程的执行初窥 swoole 中协程的调度; 理解协程为什么快; swoole 协程和 go 协程对比 折腾 swoole 协程有一段...

daydaygo
06/14
0
0
Kotlin Coroutines(协程) 完全解析(二),深入理解协程的挂起、恢复与调度

Kotlin Coroutines(协程) 完全解析系列: Kotlin Coroutines(协程) 完全解析(一),协程简介 Kotlin Coroutines(协程) 完全解析(二),深入理解协程的挂起、恢复与调度 本文基于 Kotlin v...

JohnnyShieh
10/29
0
0
Kotlin Coroutines 笔记 (一)

一. 协程 Kotlin 在1.1版本之后引入了协程的概念,目前它还是一个试验的API。 在操作系统中,我们知道进程和线程的概念以及区别。而协程相比于线程更加轻量级,协程又称微线程。 协程是一种用...

fengzhizi715
07/18
0
0
游戏引擎Mojoc,(7)C使用goto label地址实现协程

C 语言实现协程,最困难的部分就是上下文信息的保存和还原。这样才能够做到,让协程在任意位置让出执行权限,稍后再恢复到中断位置继续执行。C 实现协程一般有几个方案。 使用第三方库来保存...

scottcgi
2017/10/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

小白带你认识netty(三)之NioEventLoop的线程(或者reactor线程)启动(一)

在第一章中,我们看关于NioEventLoopGroup的初始化,我们知道了NioEventLoopGroup对象中有一组EventLoop数组,并且数组中的每个EventLoop对象都对应一个线程FastThreadLocalThread,那么这个...

天空小小
今天
3
0
PHP动态扩展Redis模块

查看已有模块 [root@test-a ~]# /usr/local/php/bin/php -m[PHP Modules]bz2Core...zlib[Zend Modules] 下载包,解压,生成configure文件 [root@test-a ~]# cd /usr/local/src/[ro......

野雪球
今天
3
0
在Ignite中使用线性回归算法

在本系列前面的文章中,简单介绍了一下Ignite的机器学习网格,下面会趁热打铁,结合一些示例,深入介绍Ignite支持的一些机器学习算法。 如果要找合适的数据集,会发现可用的有很多,但是对于...

李玉珏
今天
5
0
Mybatis应用学习——简单使用示例

1. 传统JDBC程序中存在的问题 1. 一个简单的JDBC程序示例: public class JDBCDemo {public static void main(String[] args) {Connection con=null;PreparedStatement statemen...

江左煤郎
今天
4
0
使用JavaScript编写iOS应用业务逻辑

JSAUIKitCocoa使你可以使用JavaScript编写对性能要求不高但可能变动性很大的iOS应用的业务逻辑部分,View组件、需要多线程支持的Model等则直接使用原生对象。 编写方式与React Native相似,但...

neal01
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部