网络异常
请检查网络设置后重试
重新加载
golang训练营
10
成员
登录后加入频道即可发帖
0/1000
不选择版块
发表
全部
苏宜旺
频道主
2024-10-31
#golang
并发和并行的区别
并发和并行在一个时间段内的表现都是多个进程得到了运行。
并发在任意一个时刻下,只有一个进程在运行;
并行在任意一个时刻下,有多个进程在同时运行。
点赞
3
分享
苏宜旺
频道主
2024-10-31
#golang
Goroutine和线程的区别?
1.一个线程可以有多个协程
2.线程、进程都是同步机制,而协程是异步
3.协程可以保留上一次调用时的状态,当过程重入时,相当于进入了上一次的调用状态
4.协程是需要线程来承载运行的,所以协程并不能取代线程,「线程是被分割的CPU资源,协程是组织好的代码流程」
点赞
评论
分享
苏宜旺
频道主
2024-10-31
#golang
用户态&内核态
通过系统调用将操作系统整个体系分为用户态和内核态。
一般的操作系统对执行权限进行分级,分别为用户态和内核态。用户态相较于内核态有较低的执行权限,很多操作是不被操作系统允许的,内核态相当于一个介于硬件与应用之间的层,有最高权限,可以执行任何cpu指令,也可以引用任何内存地址,包括外围设备, 例如硬盘, 网卡,权限等级最高。
为什么要有用户态和内核态:为了限制不同程序对数据的访问能力,防止部分程序获取其他程序的数据,或者获取外围设备的数据,发送到网络上提高安全性.
点赞
评论
分享
苏宜旺
频道主
2024-10-31
#golang
原子操作和锁的区别
1.原子操作由底层硬件支持,而锁是基于原子操作+信号量完成的。若实现相同的功能,前者通常会更有效率
2.原子操作是单个指令的互斥操作;互斥锁/读写锁是一种数据结构,可以完成临界区(多个指令)的互斥操作,扩大原子操作的范围
3.原子操作是无锁操作,属于乐观锁;说起锁的时候,一般属于悲观锁
4.原子操作存在于各个指令/语言层级,比如*机器指令层级的原子操作",““汇编指令层级的原子操作”,“Go语言层级的原子操作”等。
点赞
评论
1
苏宜旺
频道主
2024-10-31
#golang
Golang内存分配机制
Go语言内置运行时(就是runtime),抛弃了传统的内存分配方式,改为自主管理。这样可以自主地实现更好的内存使用模式,比如内存池、预分配等等。这样,不会每次内存分配都需要进行系统调用。
点赞
评论
分享
公告
暂无公告
直播
暂无直播