go 线程说明
A:线程是由操作系统管理的(创建, 执行, 销毁), 我们的程序(处于应用层,也叫应用态,或者用户态)
是在操作系统(内核态)之上运行的,
B,单核cpu线程的切换,是在不同的时间片上执行的,把cpu执行的1秒钟,切成10毫秒每片,有100个时间段,每个线程轮流执行一个时间片,
就有100个线程可以执行,从人来看,在一秒中就好像有100个线程都在同时运行一样, 由于线程是由操作系统管理,
从一个线程切换到另一个线程,需要进行上下文的保存和切换,程序的执行状态就会从用户态切换到操作系统的内核态,
同时会对上下文的进行保存, 恢复,等一系列操作,就会消耗cpu的资源
C,创建一个线程池, 放入多个由操作系统创建的线程, 当有任务来到时,从线程池中取一个线程进行执行,创建用户态的线程去执行任务,
用完了归还到线程池中给下一个任务使用,避免了频繁的由操作
系统创建和销毁线程保存上下文环境等操作, 把用户态的任务当作一个用户态的线程,而切换则是发生在用户态,节省了大量的资源
写入自己的博客中才能记得长久
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!