首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
n就是我
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
74
文章 50
沸点 24
赞
74
返回
|
搜索文章
最新
热门
Go中的内存模型与垃圾回收(一)| 青训营笔记
栈内存(协程栈, 调用栈) Go协程栈的作用 协程的执行路径 局部变量 函数传参 函数返回值 Go协程栈的位置 Go的协程栈位于堆内存上 Go堆内存位于操作系统虚拟内存上 Go栈帧的结构 参数传递 G
Go中的网络编程(二)| 青训营笔记
Network Poller 如何工作 Network Poller初始化 poll_runtime_pollServerInit() 使用原子操作保证只初始化一次 调用netpollinit() p
Go中的网络编程(一)| 青训营笔记
TCP通讯基本原理 网络分层 TCP通信过程 Socket 很多系统都提供Socket作为TCP网络连接的抽象 Linux -> Internet domain -> SOCK_STREAM Linu
Go中的Channel(二) | 青训营笔记
接收数据的底层原理 <-c 关键字 <-c 关键字也是一个语法糖 编译阶段, i<-c 转化为runtime.chanrecv1() 或者 i, ok<-c 转化为runtime.chanrecv2(
Go中的Channel(一) | 青训营笔记
管道 vs 共享内存 声明方法 make(chan int) 无缓冲 make(chan bool, 0) // 无缓冲 make(chan string, 2) // 有缓冲 基本用法 ch <-
Go中的锁(三) | 青训营笔记
相互等待 - WaitGroup 一个(组)协程需要等待另一组协程完成 Wait() 如果被等待的协程没了, 直接返回 否则, waiter + 1, 陷入sema Done() 被等待协程做完, 给
Go中的锁(二) | 青训营笔记
读写锁 多个协程同时只读 只读时 让其他人不能修改即可 多协程可以共享读 不需要互斥锁 读写锁需求 每个锁分为读锁和写锁,写锁互斥 没有加写锁时,多个协程都可以加读锁 加了写锁时,无法加读锁,读协程排
Go中的锁(一) | 青训营笔记
锁的基础是什么 atomic 操作 结果大概率不会到1000 使用atomic操作就可以稳定在1000 原子操作是一种硬件层面加锁机制 保证操作一个变量的时候, 其它协程/线程无法访问 只能用于简单变
Go中的协程(三) | 青训营笔记
协程开太多会怎么样 panic: too many concurrent operations on a single file or socket (max 1048575) 文件打开数限制 内存限
Go中的协程(二) | 青训营笔记
协程并发 协程的饥饿问题 长协程会长期占用M, 导致其它饥饿 线程循环(触发切换) 但全局队列可能会存在饥饿问题, 通过再添加一层循环解决. 以一定的概率, 从全局队列拿任务到M中(代码中是每执行61
下一页
个人成就
文章被阅读
1,306
掘力值
196
关注了
55
关注者
2
收藏集
2
关注标签
42
加入于
2018-04-25