English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico do Golang

Instruções de controle no Golang

Função & Método no Golang

Estrutura no Golang

Fatia & Array no Golang

Cadeia de caracteres (String) no Golang

Ponteiro no Golang

Interfaces no Golang

Concorrência no Golang

Exceções (Error) no Golang

Outros itens de Golang

Múltiplos Goroutines da Linguagem Go

Uma Goroutine é uma função ou método que pode ser executada independentemente e ao mesmo tempo com qualquer outra Goroutine existente no programa. Em outras palavras, todas as atividades executadas ao mesmo tempo no Go são chamadas de Goroutines. No Go, você pode criar várias goroutines em um programa. Você pode criar uma goroutine simplesmente usando a palavra-chave 'go' como prefixo de chamada de função ou método, conforme mostrado na seguinte sintaxe:

func name(){
// instrução
}
//Criar goroutines usando a palavra-chave go
go name()

Agora, com um exemplo, discutimos como criar e usar várias goroutines:

package main
import (
    "fmt"
    "time"
)}
//goroutine 1
func Aname() {
    arr1 := [4]string{"Rohit", "Suman", "Aman", "Ria"}
    for t1 := 0; t1 <= 3; t1++ {
        time.Sleep(150 * time.Millisecond)
        fmt.Printf("%s\n", arr1[t1])
    }
}
// goroutine 2
func Aid() {
    arr2 := [4]: int{300, 301, 302, 303}
    for t2 := 0; t2 <= 3; t2++ {
        time.Sleep(500 * time.Millisecond)
        fmt.Printf("%d\n", arr2[t2])
    }
}
func main() {
    fmt.Println("!...main Go-routine começa...!")
    // Chamada de Goroutine 1
    go Aname()
    // Chamada de Goroutine 2
    go Aid()
    time.Sleep(3500 * time.Millisecond)
    fmt.Println("\n!...main Go-routine termina...!")
}

Saída:

!...main Go-routine começa...!
Rohit
Suman
Aman
300
Ria
301
302
303
!...main Go-routine termina...!

Criação:No exemplo acima, além do main goroutine, temos outras duas goroutines, nomeadamenteAnameeAidAqui,Anameimprimir o nome do autor,Aidimprimir o id do autor.

Tarefa:Aqui, temos duas goroutines, nomeadamenteAnameeAid,e um main goroutine. Quando primeiro executamos o programa, o main goroutine é estratificado e imprime “!...main Go-routine começar...! Aqui, o main goroutine é como um pai goroutine, e outras goroutines são seus processos filhos, então é necessário executar o main goroutine antes de iniciar outras goroutines. Se o main goroutine for finalizado, outras goroutines também serão finalizadas. Portanto, após o main goroutine,AnameeAid as goroutines começarão a trabalhar simultaneamente. Aname goroutine15O trabalho começou a 0ms, enquanto o Aid500ms começando a trabalhar.