一、用户级线程又不能提升并发度,有啥用呢?
用户级线程可减少每个服务的响应时间,如浏览器:用户级线程1用于下载页面内容,用户级线程用于显示当前的下载内容。这样“显示页面这个服务”可以提前响应。
二、所有线程共用一个用户栈行不行?
不行,用一个栈时调用函数会压栈,切换线程会压栈,一通乱压,退栈时没调用切换,可能会退出另一个线程的指令地址。即没调用切换却切换了。所以每一个用户线程都得有一个用户栈。
三、用户级线程的切换
通过TCB切换用户栈
四、核心级线程。
每个线程两个栈,内核栈会关联用户栈,TCB会关联内核栈。调度会有五段。