Golang 创建两个并发程序

Golang 创建两个并发程序

在使用Go语言时,可能会遇到需要创建两个并发程序以进行并行处理、异步操作等的情况。在本Go语言文章中,我们将探讨如何使用匿名函数、命名函数以及使用函数调用来创建两个并发程序。在Go语言中,goroutine是一个独立的并发函数,它通过允许函数并发运行来实现并发编程。

语法

time.Sleep(duration)
  • 它是go语言内置的一个函数,用于暂停程序的执行。

  • 它只接受一个参数”duration”。

  • duration :它是你想要睡眠的时间长度。

步骤

  • 启动主goroutine。

  • 通过调用匿名函数在主goroutine中创建一个新的goroutine。

  • 在第一个goroutine中,循环从i = 1到i = 4。打印”Goroutine 1:”,然后是i的当前值。睡眠500毫秒。

  • 通过调用另一个匿名函数在主goroutine中创建另一个goroutine。

  • 在第二个goroutine中,循环从i = 1到i = 4。打印”Goroutine 2:”,然后是i的当前值。睡眠500毫秒。

  • 主goroutine在生成goroutine之后睡眠2秒,以允许子goroutine执行。

示例1

在这个示例中,我们将使用匿名函数创建两个goroutine,这种方法适用于简单的go routine设置。在下面给出的代码中,我们将创建两个goroutine并使用循环打印消息。

package main

import (
   "fmt"
   "time"
)

func main() {
   go func() {
      for i := 1; i <= 4; i++ {
         fmt.Println("Goroutine 1:", i)
         time.Sleep(time.Millisecond * 500)
      }
   }()

   go func() {
      for i := 1; i <= 4; i++ {
         fmt.Println("Goroutine 2:", i)
         time.Sleep(time.Millisecond * 500)
      }
   }()

   time.Sleep(time.Second * 2)
}

输出

Goroutine 2: 1 
Goroutine 1: 1 
Goroutine 1: 2 
Goroutine 2: 2 
Goroutine 1: 3 
Goroutine 2: 3 
Goroutine 2: 4 
Goroutine 1: 4

示例2

在这个示例中,我们将创建两个单独的命名函数,并且每个函数将作为一个goroutine执行。在下面给出的代码中,两个goroutine并发运行并打印一条带有数字的消息。

package main

import (
   "fmt"
   "time"
)

func printMessage(message string) {
   for i := 1; i <= 6; i++ {
      fmt.Println(message, i)
      time.Sleep(time.Millisecond * 500)
    }
}

func main() {
   go printMessage("Goroutine 1:")
   go printMessage("Goroutine 2:")

   time.Sleep(time.Second * 2)
}

输出

Goroutine 1: 1 
Goroutine 2: 1 
Goroutine 1: 2 
Goroutine 2: 2 
Goroutine 2: 3 
Goroutine 1: 3 
Goroutine 1: 4 
Goroutine 2: 4 
Goroutine 2: 5

示例3

在这个示例中,我们不是直接定义函数,而是通过将函数名作为参数传递来调用现有的函数。在下面的代码中,我们将使用两个并发运行的goroutine打印指定计数的数字。

package main

import (
   "fmt"
   "time"
)

func printMessage(message string, count int) {
   for i := 1; i <= count; i++ {
      fmt.Println(message, i)
      time.Sleep(time.Millisecond * 500)
    }
}

func main() {
   go printMessage("Goroutine 1:", 5)
   go printMessage("Goroutine 2:", 5)

   time.Sleep(time.Second * 3)
}

输出

Goroutine 2: 1 
Goroutine 1: 1 
Goroutine 1: 2 
Goroutine 2: 2 
Goroutine 2: 3 
Goroutine 1: 3 
Goroutine 1: 4 
Goroutine 2: 4 
Goroutine 2: 5 
Goroutine 1: 5

结论

在本文中,我们讨论了如何在一种语言中创建两个goroutine。我们介绍了三种不同的方法来建立两个goroutine,即匿名函数、命名函数和使用函数调用。Goroutine通过允许函数并发运行,实现了并发编程。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程