>  기사  >  백엔드 개발  >  Golang은 멀티코어 CPU를 사용할 수 있나요?

Golang은 멀티코어 CPU를 사용할 수 있나요?

angryTom
angryTom원래의
2020-03-17 16:19:233252검색

Golang은 멀티코어 CPU를 사용할 수 있나요?

Golang은 멀티코어 CPU를 사용할 수 있나요?

Golang은 멀티코어 CPU를 사용할 수 있습니다. Go는 멀티코어 프로그래밍을 자연스럽게 지원합니다. 그렇다면 프로그램을 가속화하기 위해 어떤 상황에서 멀티코어를 사용해야 할까요?

관련 권장 사항: golang 튜토리얼

다음 프로그램을 살펴보겠습니다.

package main
import (
        "runtime"
        "fmt"
        "sync"
  "time"
)
//定义任务队列
var waitgroup sync.WaitGroup
func xtgxiso(num int) {
        for i:=1;i<=1000000000;i++{
    num = num+i
    num = num-i
    num = num*i
    num = num/i
  }
        waitgroup.Done() //任务完成,将任务队列中的任务数量-1,其实.Done就是.Add(-1)
}
func main() {
  //记录开始时间
  start := time.Now()
        //设置最大的可同时使用的CPU核数和实际cpu核数一致
        runtime.GOMAXPROCS(1)
        for i := 1; i <= 10; i++ {
                waitgroup.Add(1) //每创建一个goroutine,就把任务队列中任务的数量+1
                go xtgxiso(i)
        }
        waitgroup.Wait() //Wait()这里会发生阻塞,直到队列中所有的任务结束就会解除阻塞 //记录结束时间
  end :=  time.Now()
  //输出执行时间,单位为秒。
  fmt.Println(end.Sub(start).Seconds())
}

"runtime.GOMAXPROCS(1)"를 사용하여 단일 코어 실행인지 다중 코어 실행인지 설정할 수 있습니다. 결과에 따르면 멀티 코어는 싱글 코어 Fast보다 분명히 우수하므로 CPU 작업의 경우 멀티 코어 작업의 가속화 효과가 매우 분명합니다.

PHP 중국어 웹사이트, 수많은 프로그래밍 튜토리얼, 데이터베이스 관리 도구 navicat 튜토리얼, 배우기를 환영합니다!

위 내용은 Golang은 멀티코어 CPU를 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.