Go 中的并发和并行

这篇具有很好参考价值的文章主要介绍了Go 中的并发和并行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

并发与并行

并发:同一时间段内执行多个任务(你早上在编程狮学习Java和Python)

并行:同一时刻执行多个任务(你和你的网友早上都在使用编程狮学习Go)

Go语言中的并发程序主要是通过基于CSP(communicating sequential processes)的goroutine和channel来实现,当然也支持使用传统的多线程共享内存的并发方式

goroutine 就是在 函数前面加 go 就可以了

其实在Go程序中,会默认为main函数创建一个goroutine,而在上述代码中我们使用go关键字创建了一个新的goroutine去调用hello函数。而此时main的goroutine还在往下执行中,我们的程序中存在两个并发执行的goroutine。当main函数结束时,整个程序也结束了,所有由main函数创建的子goroutine也会跟着退出,也就是说我们的main函数执行过快退出导致另一个goroutine内容还未执行就退出了,导致未能打印出hello

package main

import (
	"fmt"
    "time"
)

func hello() {
	fmt.Println("hello")
}

func main() {
	go hello()
	fmt.Println("欢迎来到编程狮")
    // 解决办法
    // time.Sleep(time.Second)
}

Go语言中的sync包为我们提供了一些常用的并发原语

 当你并不关心并发操作的结果或者有其它方式收集并发操作的结果时,WaitGroup是实现等待一组并发操作完成的好方法

执行多次上述代码你会发现输出顺序并不一致,这是因为10个goroutine都是并发执行的,而goroutine的调度是随机的文章来源地址https://www.toymoban.com/news/detail-453913.html

到了这里,关于Go 中的并发和并行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker查询某时间段的日志

    参考:docker logs 查看docker容器日志详解_Mym_zuoyan_Tmac的博客-CSDN博客_docker logs 查找

    2024年02月16日
    浏览(47)
  • Linux查询指定时间段的日志

    Linux查询指定时间段的日志 可以通过grep或者sed命令查指定时间段日志 1.命令 命令: 2.举例 【例】查询今天10月20日10点30分的这一分钟的日志 第一步,可以先看下日志文件的格式 第二步,通过grep提取和匹配符合条件的字符串行 或者用sed查询 注意事项

    2024年02月12日
    浏览(48)
  • docker导出指定时间段内日志

    命令格式如下: 起始时间 :指定要导出日志的起始时间,格式为YYYY-MM-DDTHH:MM:SS。 结束时间 :指定要导出日志的结束时间,格式为YYYY-MM-DDTHH:MM:SS。 容器ID或名称 :指定要导出日志的Docker容器ID或名称。 导出文件路径 :指定导出日志的文件路径和文件名。 例如,要导出容器

    2024年02月06日
    浏览(42)
  • matlab根据时间列筛选到特定时间段(小时、天、月、年)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:这里可以添加本文要记录的大概内容: 在处理带时间标签的数据时,往往需要对数据进行筛选,本文将介绍一下利用matlab根据时间标签对数据进行筛选的一种方法。 提示:以下是本篇文章正文内

    2024年02月12日
    浏览(47)
  • Unity TimeLine循环播放某个时间段

    1、设置Playable Director的Update Method为GameTime模式 2、API : using UnityEngine.Playables; 我们需要用到PlayableDirector的time属性 3、设置开始和结束时间段(使用的帧率)我在0-158帧循环和158到290帧之间循环 4、代码 代码笔记

    2024年02月11日
    浏览(55)
  • Linux查询提取指定时间段的日志

    在 Linux 中,可以使用 sed 、 awk 命令快速提取一个日志文件中指定时间段之间的日志信息。下面提供两种方法: 首先,假设要提取的日志文件为 log.txt 。假设要提取 2023 年 06 月 01 日 00:00:00 到 2023 年 06 月 01 日 01:00:00 之间的日志信息,可以使用以下命令: 该命令的解释如下:

    2024年02月12日
    浏览(49)
  • PostgreSQL处理时间段、时长转为秒、分、小时

    如果要计算某个时间点到某个时间点的时长或时间段是多少,并且要转换为秒、分、小时的话,我们可以按下面的例子处理 首先,举例计算2023年4月19日10点整 到2023年4月20日22点00分30秒的时长 结果为: 1 day 12:00:30 现在将结果转换为秒、分、小时 结果为: 129630 结果为: 216

    2024年02月12日
    浏览(32)
  • 【hbase】按时间段批量删除hbase数据

    背景是华为大数据平台mrs,这里运用到HDFS、Hive、HBase;数据通过接口接入到hbase,用hive创建hbase外部表。需求是某段时间数据有问题,需要删掉重新补入。 HBase删除操作 1、获取rowkey 方法1:通过hbase命令scan, TIMERANGE 这个是通过数据的插入时间进行过滤 方法2:通过hbase命令

    2024年02月05日
    浏览(45)
  • vue 封装一个鼠标拖动选择时间段功能

       

    2024年02月15日
    浏览(38)
  • 常用的两种 MySQL 查询时间段的方法

    在 MySQL 数据库中,经常需要查询某个时间段内的数据。本文将介绍两种常用的 MySQL 查询时间段的方法,并提供相应的源代码示例。 方法一:使用 BETWEEN 运算符 BETWEEN 运算符可用于查询一个范围内的值,包括指定的起始值和结束值。在查询时间段时,我们可以将起始时间作为

    2024年02月05日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包