go 语言的并发模型

2018-10-21 杜世伟 go

Go语言的并发模型基于CSP(Communicating Sequential Processes)通信顺序进程模型,通过goroutine和channel来实现并发。Go语言的设计者希望并发成为一种简洁、高效、易于使用的机制,因此它的并发模型具备轻量、简单、安全等特点。

以下是Go语言并发模型的几个核心概念:

1. Goroutine
Goroutine是Go语言的并发执行单元,类似于线程,但它比线程更轻量。Go的运行时调度器会负责管理成千上万的goroutine,而不会给系统带来沉重的负担。

特点:

轻量:Goroutine的启动成本非常低,初始栈大小只有几KB,而不是线程的几MB。并且,栈会根据需要动态增长。
高效调度:Go的调度器会自动把goroutine分布在不同的操作系统线程上执行,程序员无需手动管理。
简单启动:通过使用关键字go,可以轻松启动一个新的goroutine。例如:

go someFunction()

2. Channel
Channel是Go语言中用来在goroutine之间传递数据的通信机制。它是类型安全的,可以通过它将一个goroutine中的数据传递到另一个goroutine。

阅读全文>>

标签: go Goroutine Channel

评论(0) 浏览(662)

go 简介与安装

2017-4-24 杜世伟 go

Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。

Go 语言特色
简洁、快速、安全
并行、有趣、开源
内存管理、v数组安全、编译迅速
Go 语言用途
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。

对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。

各种版本的下载地址:
https://golang.org/dl/

Go环境安装:
1、wget方式下载并解压
wget https://dl.google.com/go/go1.9.3.linux-amd64.tar.gz
sudo tar -xzf go1.9.3.linux-amd64.tar.gz -C /usr/local/lib
2、添加配置

阅读全文>>

标签: linux centos go export

评论(0) 浏览(5590)

Linux运维人员必会开源运维工具体系

2016-3-9 杜世伟 Linux

Linux运维人员必会开源运维工具体系

说明:不同的技术人员,在不同的阶段确定知识边界非常重要,否则,虽然是千里马,但是不知道终点在哪,最终累死也达不到目标。

新手必会用深黄色标记,老鸟必会深黄色+浅蓝色标记

==============================================

操作系统:Centos,Ubuntu,Redhat,suse,Freebsd

网站服务:nginx,apache,lighttpd,php,tomcat,resin
数据   库:MySQL,MariaDB,PostgreSQL

阅读全文>>

标签: linux rpm yum shell python go

评论(0) 浏览(7333)

Powered by emlog 沪ICP备2023034538号-1