go 线程说明

A:线程是由操作系统管理的(创建, 执行, 销毁), 我们的程序(处于应用层,也叫应用态,或者用户态)
是在操作系统(内核态)之上运行的,

B,单核cpu线程的切换,是在不同的时间片上执行的,把cpu执行的1秒钟,切成10毫秒每片,有100个时间段,每个线程轮流执行一个时间片,
就有100个线程可以执行,从人来看,在一秒中就好像有100个线程都在同时运行一样, 由于线程是由操作系统管理,
从一个线程切换到另一个线程,需要进行上下文的保存和切换,程序的执行状态就会从用户态切换到操作系统的内核态,
同时会对上下文的进行保存, 恢复,等一系列操作,就会消耗cpu的资源

C,创建一个线程池, 放入多个由操作系统创建的线程, 当有任务来到时,从线程池中取一个线程进行执行,创建用户态的线程去执行任务,
用完了归还到线程池中给下一个任务使用,避免了频繁的由操作
系统创建和销毁线程保存上下文环境等操作, 把用户态的任务当作一个用户态的线程,而切换则是发生在用户态,节省了大量的资源

posted @ 2022-03-20 00:12  ty1539  阅读(91)  评论(0编辑  收藏  举报