用户级线程

线程切换:不切换映射关系,不切换资源,只切换执行的指令顺序。线程保留了并发的优点,避免了进程切换的代价。

进程切换:指令切换+资源切换(映射表的切换)
线程切换:指令切换,不切换资源

例如一个网页浏览器可以:用一个线程用来接收数据,一个线程来显示文本,一个线程用来处理图片,一个线程用来显示图像。这些线程要共享资源

 

用户级线程切换

如果有两个线程,意味着两个执行序列,用一个栈来执行这两个序列,就导致了混乱,用两个栈执行两个执行序列。

两个线程的样子:两个TCB,两个栈,PC在栈中。

ThreadCreate 的实现就是做出三样东西:分配一段空间作为TCB,分配一段空间作为栈,在栈中填入该线程的起始地址,将栈和TCB关联。线程的切换就是TCB的切换和Yield()函数结束时的弹栈动作的配合。

posted @ 2023-01-02 21:10  stu--wy  阅读(39)  评论(0编辑  收藏  举报