首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
以富之名
杭州电子科技大学 前端工程师
关注
已关注
取消关注
还是很不错滴~
@Anyaaaa:
【扫描全能王】【干货】Goroutine & Channel
并发模型 进程 vs 线程 vs Goroutine 进程,是操作系统分配资源的基本单元。不同的进程之间内存空间资源独占,只能通过信号、管道、文件等方式进行通信。PHP-FPM即采取多进程并发模型,每一个请求过来,都会fork一个独立的进程用于处理该请求。 线程,是操作系统调度的基本单元。同一进程下的不同线程之间共享内存,可能出现资源竞争等问题。Java Servlet即采用多线程并发模型,每一个请求过来,都会创建一个独立的线程用于处理该请求。由于多线程使用共同的内存空间,就需要考虑全局性资源(全局的变量、对象、文件等)的线程安全问题。 Goroutine,是一种协程,即用户空间的线程,操作系统不直接调度。相比进程和线程的优势,下文会具体阐述。 Goroutine & Channel Golang使用CSP模型实现并发,goroutine和channel即分别对应CSP模型中的Process和Channel。不同于多线程并发模型需要在竞态情形(race condition)下,通过复杂的锁机制确保资源正确使用。goroutine之间可以使用channel进行通信。Channel可以看成一个 FIFO 队列,对 FIFO 队列的读写都是原子的操作,不需要加锁。 Goroutine创建 在Golang中,Goroutine是语言级别的支持,只需要通过一个简单的go关键字即可创建Goroutine,十分快捷简单。 go func() { // 开启Goroutine fmt.Println("Hello World!") }() Channel创建 & 关闭 Channel对象必须使用make()函数进行创建。 channel := make(chan int) // 创建Channel channel := make(chan int) // 创建Channel channel := make(chan int) // 创建Channel buffered_channel := make(chan int, 2) // 创建带有缓冲的Channel close(channel) // 关闭Channel Channel发送 & 接收 当"<-"发送运算符在Channel对象右边时,代表发送操作。 当"<-"接收运算符在Channel对象左边时,代表接收操作。可以只接收,不赋值;也可以接收完,再通过"="赋值运算符赋值给一个变量。 package mainimport ( "fmt" "time")func main() { channel := make(chan int) // 创建Channel go func() { // 开启Goroutine time.Sleep(1000000000) channel <- 1 // 向Channel发送数据 }() result := <-channel // 接收Channel中的数据 fmt.Println(result)} select语句 select语句由多个带有Channel的发送或接收操作的case组成。 一组select语句执行,只会处理第一个就绪的发送或接收case。 package mainimport ( "fmt" "time")func main() { channel1 := make(chan int) // 创建Channel1 channel2 := make(chan int) // 创建Channel2 go func() { // 开启Goroutine1 time.Sleep(1000000000) channel1 <- 1 // 向Channel1发送数据 }() go func() { // 开启Goroutine2 time.Sleep(100000000) channel2 <- 2 // 向Channel2发送数据 }() select { // 同时等待接收Channel1和Channel2的数据,只要有一个就绪,即完成对应case的处理 case result := <-channel1: fmt.Println(result) case result := <-channel2: fmt.Println(result) }} for … range语句 for … range语句可以迭代接收Channel中的数据,直到Channel被关闭。 package mainimport ( "fmt" "time")func main() { channel := make(chan int) // 创建Channel go func() { for i := 0; i < 10; i++ { time.Sleep(1000000000) channel <- i // 不断向Channel发送数据 } close(channel) // 关闭Channel }() for result := range channel { // 迭代Channel中的数据,并打印出来 fmt.Println(result) }} 优雅地实现处理超时 golang标准库中的time.After()函数的返回值,即是一个channel。 通过和select语句相结合,我们优雅地实现处理超时。 package mainimport ( "fmt" "time")func main() { channel := make(chan int) // 创建Channel go func() { // 开启Goroutine time.Sleep(1000000000) channel <- 1 // 向Channel发送数据 }() select { case result := <-channel: // 接收Channel中的数据 fmt.Println(result) case <-time.After(100000000): fmt.Println("time out") }} 欢迎加入~! ps:目前诚招前端/后端/移动端/测试社招&校招岗位! 岗位介绍链接:https://m.zhipin.com/mpa/html/weijd/weijd-boss/1a2cf8dbc2a5c73103V53dW_F1Y~?sid=qr_self 公司介绍:http://www.ccint.com/(扫描全能王、名片全能王、启信宝、橘子兼职都是我们的产品哟~~) 简历投递:邮件发送至fei_hong@intsig.net(命名格式为“岗位+20xx届+学校+姓名”)期待你们的加入哦~ 欢迎在评论中跟我们进行技术交流哦~ 等你~
点赞 8
评论 7
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
04-08 22:28
中国矿业大学(北京) Web前端
美团 AI 面说明教程
根据目前参与过美团AI面试的同学反馈,题目类型与考察方向有一定规律性,其实不难发现高频考点就那么几个,所以我用反馈出来的面经整理了一套题库,涵盖了美团ai面中反复出现的经典问题,只要认真掌握以下题目基本上就不用太焦虑。ai面规则我的建议是,ai面回答时尽量采用“第一、第二、第三”或“1、2、3”的结构化方式分点陈述,每个分点先抛出核心结论,再用一到两句话简要展开,避免长篇大论或逻辑散乱。语速一定要记住保持平稳适中,关键词可适当加重语气,确保ai的语音识别能够准确抓取得分点。整体作答控制在4分30秒左右,预留少量时间缓冲,防止超时自动跳题。如遇到完全不会的题目,不要长时间卡顿,简要说明相关思路或...
前端面试准备&技...
点赞
评论
收藏
分享
04-09 22:34
已编辑
快手_后端开发
AI认知篇7:详解agent记忆系统
AG前言这是我的agent系列文章的第7篇,该系列分为三部分:AI认知篇:详细讲解相关基础概念AI实践篇:分享诸如skills怎么写、怎么ai coding、怎么写好prompt等的最佳实践AI八股篇:分享我自己整理的应付大模型应用开发岗位必备的八股笔记(后端与agent2手抓学习专栏随着 AI Agent 应用的快速发展,智能体需要处理愈发复杂的任务和更长的对话历史,而 LLM 的上下文窗口限制、持续增长的 token 成本,以及如何让 AI 有效 “记住” 用户偏好和历史交互,成为构建实用 AI Agent 系统的核心挑战。记忆系统(Memory System) 正是解决这些问题的关键技术...
后端及ai应用开发双修知...
点赞
评论
收藏
分享
04-07 17:08
广东工业大学 Java
27届找后端开发,agent开发
要简历的不少,但没面😥同学都在实习,好焦虑😢
点赞
评论
收藏
分享
03-25 19:51
杭州电子科技大学 Java
腾讯kpi面
手撕两数之和(不是力扣 是输入两个数字返回数字的和)
政委qqq:
这道题在算法竞赛里唯一考的就是高精度,但是只能难住C++这类语言,Python直接a+b秒天秒地
点赞
评论
收藏
分享
昨天 18:08
门头沟学院 活动运营
SBTI爆火,可能会有哪些面试题?
以下是我作为面试官视角,会想提问同学的,可能涉及到的岗位:内容运营/增长运营/新媒体运营/热点运营/活动运营,准确来说是C端运营有可能会问到的热点运营可能会问👇Q1:说一个你最近了解的热点,为什么热?A:一个SBTI的人格测试活动,建议从产品机制——用户心理——传播机制上作答Q2:现在全网都在刷SBTI,你会如何判断它对我们品牌/产品是“值得跟进”的热点?Q3: 如果SBTI热度已经很高,你会选择“跟进同款测试"还是“做反差/解构式内容"?为什么?内容/新媒体/社区/活动运营可能会问👇Q1:如果让你为我们的产品策划一个类SBTI的趣味测试活动,目标是「拉新+促活」,你会...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
大模型Agent面试全攻略(附答题思路)
1.7W
2
...
谁都可能在说谎,但财报不会骗人
1.6W
3
...
我感觉我遇到神仙mentor了
9847
4
...
春招产品内卷到什么程度了
5433
5
...
字节一二三hr面 java面经(已off)
5267
6
...
秋招失利别慌,好offer不怕晚
4589
7
...
携程工作体验
3837
8
...
上线一个月了,说几句真心话
3692
9
...
入职翼支付2年多,聊聊感受
3475
10
...
有了这个skill我再也没手动改过简历
3197
创作者周榜
更多
正在热议
更多
#
Agent面试会问什么?
#
22311次浏览
798人参与
#
哪些公司一直卡在简历筛选
#
99644次浏览
301人参与
#
厦门银行科技岗值不值得投
#
18262次浏览
419人参与
#
给工作过的公司写一条大众点评,你会怎么写?
#
7598次浏览
114人参与
#
运营每日一题
#
134394次浏览
928人参与
#
烂工作和没工作哪个更痛苦?
#
15735次浏览
248人参与
#
拼多多工作体验
#
54855次浏览
373人参与
#
一人分享一个skill
#
5730次浏览
156人参与
#
我们是不是被“优绩主义”绑架了?
#
43814次浏览
538人参与
#
春招至今,你收到几个面试了?
#
61012次浏览
844人参与
#
央国企投递记录
#
187036次浏览
1710人参与
#
面试体验最好和最差的公司
#
18650次浏览
140人参与
#
机械人面试中的常问题
#
267434次浏览
3692人参与
#
你觉得专业和学校哪个对薪资影响最大
#
103952次浏览
615人参与
#
我是XXX,请攻击我最薄弱的地方
#
71868次浏览
475人参与
#
AI替代不了什么?
#
10389次浏览
160人参与
#
现在入门AI首先要做什么?
#
3725次浏览
92人参与
#
你收到了团子的OC了吗
#
1583467次浏览
11849人参与
#
神州数码信息服务股份有限公司笔试
#
3498次浏览
21人参与
#
你被哪些公司挂了?
#
172829次浏览
969人参与
#
面试尴尬现场
#
224030次浏览
868人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务