go语言部分runtime库函数

  runtime库函数相当cool,因为它可以控制go语言程序的运行多方法

1. runtime.GOMAXPROCS函数

       默认此函数的值与CPU逻辑个数相同,即有多少个goroutine并发执行,当然可以设置它,它的取值是1~256。最好在主函数在开始前设置它,因为设置它会停止当前程序的运行。

2. runtime.Goexit函数

  调用此函数会立即使当前的goroutine的运行终止,而其它的goroutine并不会受此影响。runtime.Goexit在终止当前goroutine前会先执行此goroutine的还未执行的defer语句。

  请注意千万别在主函数调用runtime.Goexit,因为会引发panic

3. runtime.Gosched函数

      调用此函数会让当前的goroutine出让cpu,此goroutine会加入调用度器的可运行G队列,重新获得调度。

4. runtine.LockOSThread函数和runtime.UnlockOSThread函数

  主要是为cgo准备的锁定解锁M与G,因为有些C语言的函数库(比如OpenGL)会用到线程本地存储技术。如果G进行cgo之后返回发现当前的M被转走了,绑定其它的G在运行就会发现错误,所以当需要进行M与G锁定的情况可以用这两个函数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值