[go] go 언어의 exec 패키지와 다중 프로세싱 지원 기능
Go 언어는 exec 패키지를 통해 외부 프로그램을 실행하고, 표준 입력/출력을 다룰 수 있는 강력한 기능을 제공합니다. 또한, 다중 프로세싱을 지원하여 병렬로 프로그램을 실행할 수 있는 장점이 있습니다.
exec 패키지
exec
패키지를 사용하면 운영체제 명령어나 외부 프로그램을 쉽게 실행할 수 있습니다. Go 언어를 사용하여 다른 언어나 프로그램과의 통합이 필요한 경우, exec
패키지를 활용하여 이를 수행할 수 있습니다.
아래는 exec
패키지를 사용하여 외부 프로그램을 실행하는 간단한 예제입니다.
package main
import (
"os/exec"
"fmt"
)
func main() {
cmd := exec.Command("ls", "-l")
stdout, err := cmd.Output()
if err != nil {
fmt.Println(err)
}
fmt.Println(string(stdout))
}
위 예제에서는 ls -l
명령어를 실행하여 그 결과를 출력하고 있습니다.
다중 프로세싱
Go 언어는 고루틴을 통해 다중 프로세싱을 지원합니다. 고루틴은 경량 쓰레드로, 여러 개의 고루틴을 생성하여 병렬로 여러 작업을 처리할 수 있습니다. 이를 통해 프로그램의 성능을 향상시킬 수 있습니다.
아래는 간단한 다중 프로세싱 예제입니다.
package main
import (
"fmt"
"time"
)
func task(name string) {
for i := 0; i < 5; i++ {
time.Sleep(time.Second)
fmt.Println(name, ":", i)
}
}
func main() {
go task("routine1")
go task("routine2")
time.Sleep(6 * time.Second)
}
위 예제에서는 task
함수를 고루틴으로 실행하여 병렬로 처리하고 있습니다.
결론
Go 언어의 exec
패키지를 활용하면 외부 프로그램을 실행하고 다중 프로세싱을 통해 병렬로 프로그램을 실행하는 기능을 쉽게 구현할 수 있습니다. 이를 통해 높은 성능과 효율적인 프로그램을 개발할 수 있습니다.
참고 문헌: