首页 > 编程语言 >go并发编程系列二:线程的并发执行

go并发编程系列二:线程的并发执行

时间:2023-09-02 15:36:03浏览次数:40  
标签:concurrent 并发 线程 location go document

新建concurrent文件夹,在该文件夹下创建concurrent.go,代码如下:

package concurrent

import (
    "fmt"
    "time"
)

func ThreadZhangSan() {
    for i := 1; i <= 3; i++ {
        fmt.Println("张三:", i)
        time.Sleep(time.Millisecond * 500)
    }
}

func ThreadLiSi() {
    for i := 1; i <= 3; i++ {
        fmt.Println("李四:", i)
        time.Sleep(time.Millisecond * 500)
    }
}

func ThreadWangWu()  {
    for i := 1; i <= 3; i++ {
        fmt.Println("王五*:", i)
        time.Sleep(time.Millisecond * 500)
    }
}

 

在main.go里,运行这三个线程:
go concurrent.ThreadZhangSan()
go concurrent.ThreadLiSi()
go concurrent.ThreadWangWu()

 

我们可以多次执行,看这三个线程打印的内容,发现是无序的,这就是go程的并发了,在其他编程语言中,提到并发,好像很神秘,但是在go语言里线程的并发要简洁很多!

我们定义了三个线程,为了更好的理解,我们可以模拟一个场景:假设你是一个班级的班主任,在你的班级里有三个学生,线程的并发就是你管理学生的方式,现状是这三个学生很调皮,作为班主任你一定想把班级管理好,那么,就认真看这个系列的并发教程吧!

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back

标签:concurrent,并发,线程,location,go,document
From: https://www.cnblogs.com/jamstack/p/17673715.html

相关文章

  • mongodb副本集(非仲裁模式)修改各节点ip(update方式)
    环境:OS:Centos7mongodb:5.0当前的ip变更后的ip192.168.1.108192.168.1.105   PRIMARY192.168.1.109192.168.1.106   SECONDARY192.168.1.110192.168.1.107   SECONDARY 1.查看当前的集群登录一个节点上查......
  • go并发编程系列:一、建立线程
    在go语言中,使用线程的格式是:go函数名当然,你也可以使用匿名函数,我们建立三个线程,代码如下:gotest1()gotest2()gofunc(){}是不是很简单?在下一系列中,我们将扩展这三个线程,进一步讲解go的并发编程!TRANSLATEwithxEnglishArabicHebrewPolishBulgar......
  • SpringBoot 最大连接数及最大并发数是多少?
    来源:laker.blog.csdn.net/article/details/130957301每个SpringBoot版本和内置容器不同,结果也不同,这里以SpringBoot2.7.10版本+内置Tomcat容器举例。概序在SpringBoot2.7.10版本中内置Tomcat版本是9.0.73,SpringBoot内置Tomcat的默认设置如下:Tomcat的连接等待队列长度,默认是100......
  • 系统编程-线程池
    工程背景考虑这么一个情况:为应对某场景的实际需求,要在程序中创建大量线程,并且这些线程的数量和生命周期均不确定,可能方生方死,也可能常驻内存,如何在满足其要求的同时,尽可能降低系统负载?一个基本事实是,线程的创建和销毁都是需要额外的系统资源的,如果线程的生命周期很短,那么相对于......
  • 微服务架构|go-zero 的自适应熔断器
    原文链接:go-zero的自适应熔断器上篇文章我们介绍了微服务的限流,详细分析了计数器限流和令牌桶限流算法,这篇文章来说说熔断。熔断和限流还不太一样,限流是控制请求速率,只要还能承受,那么都会处理,但熔断不是。在一条调用链上,如果发现某个服务异常,比如响应超时。那么调用者为了避免......
  • go 1.21:cmp
    标准库cmp原文在这里go1.21新增cmp包提供了与有序变脸比较相关的类型和函数。Ordered定义如下:typeOrderedinterface{ ~int|~int8|~int16|~int32|~int64| ~uint|~uint8|~uint16|~uint32|~uint64|~uintptr| ~float32|~float64| ~string......
  • 工业物联网平台如何应对高并发应用场景
    随着数字化进程的不断发展,数字化技术正在逐渐融入到我们的工业、商业、生活等各个领域和行业中。越来越多、越来越复杂的个体与设备接入到数字网络中,海量数据的高并发问题是无法避免的,这也是工业物联网系统面对的巨大挑战。对此,数之能提供高并发、官翻机接入的工业物联网平台,可以适......
  • Django系统报错总结 1
    Django系统报错总结1 本章节,继续总结前面商品系统编写中遇到的报错问题TypeError:Product()gotunexpectedkeywordarguments:'update_time','seller'因为在Product类中没有定义参数update_time和seller。要解决这个问题,你需要确保在Product类中添加这些参数的定义。......
  • 《C++并发编程实战》读书笔记(1):线程管控
    1、线程的基本管控包含头文件<thread>后,通过构建std::thread对象启动线程,任何可调用类型都适用于std::thread。voiddo_some_work();structBackgroundTask{voidoperator()()const;};//空的thread对象,不接管任何线程函数std::threadt1;//传入普通函数std::thr......
  • django+drf开发一些个人的标准化
    最近在改造一下个人的开发风格。特分享一下。子应用我一般放在apps中,每个不同模块的子应用起不同的名字。startapp后自己移动一下,记得修改一下Appconfig中的name即可。子应用中创建services.py或者如有需要可以创建services模块再细分。所有业务放到services中编写。views一律......