go语言进阶总结:与并发编程相关标准库内容学习
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了go语言进阶总结:与并发编程相关标准库内容学习,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2187字,纯文字阅读大概需要4分钟。
内容图文
前言
学习使用包括os
,os/exec
,runtime
,sync
,sync/atmoic
,os/signal
,context
等在内的多个标准库。
进程管理
进程调度算法通过变更进程的状态,使CPU资源的利用率最大化。对进程的管理涉及进程从创建,执行,销毁的全过程。
涉及标准库,包括:
- pkg/os:提供了不依赖平台的操作系统函数的接口.
- pkg/os/exec:执行外部命令.
创建进程
在Go语言中,Linux下创建进程使用的系统调用是clone
。而与进程相关的结构体为:os.Process
,通过如下方式可以创建一个进程。
os
:func StartProcess(name string, argv []string, attr *ProcAttr) (*Process, error)
是一个低级别的接口os/exec
:type Cmd struct
的相关方法,是一个高级别的接口封装。
1 |
|
一般应该尽量使用
os/exec
包
销毁进程
os.Exit(code int)
Goroutine
在并发编程中,同步是在最大化利用CPU资源时,同时保证执行单位(线程/进程)互斥访问临界资源的目的。线程/进程通信机制是达到同步的手段。
在Go的并发调度模型中,最小的执行单位是协程(goroutine
),使用go
关键字开启一个新的协程。goroutine
是非常轻量的,除了给它分配栈空间(4k),它所占用的内存空间是微乎其微的。
Go倾向使用基于管道channel的消息通信模型代替传统的基于共享内存的锁机制进行协同操作。
sync包
pkg/sync;提供了互斥锁这类的基本的同步原语
锁机制
1
2
3
4
5
6
7
8
9
10
11
12
13
14// Locker接口代表一个可以加锁和解锁的对象
type Locker interface
// 互斥锁
type Mutex struct
func (m *Mutex) Lock()
func (m *Mutex) Unlock()
// 读写锁
type RWMutex struct
func (rw *RWMutex) Lock() // 写锁
func (rw *RWMutex) Unlock()
func (rw *RWMutex) RLock() // 读锁
func (rw *RWMutex) RUnlock()
func (rw *RWMutex) RLocker() Locker其它操作
<td <a="" class="" href="https://www.dazhuanlan.com">大专栏1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
内容总结
以上是互联网集市为您收集整理的go语言进阶总结:与并发编程相关标准库内容学习全部内容,希望文章能够帮你解决go语言进阶总结:与并发编程相关标准库内容学习所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。