首页 > 其他分享 >用户级线程

用户级线程

时间:2023-01-02 21:24:59浏览次数:46  
标签:两个 用户 指令 线程 切换 执行 TCB

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

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

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

 

用户级线程切换

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

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

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

标签:两个,用户,指令,线程,切换,执行,TCB
From: https://www.cnblogs.com/wuyun--wy/p/17020462.html

相关文章

  • 多线程
    1.线程相关概念1.1程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。简单的说:就是我们写的代码1.2进程进程是指运行中的程序,比如我们使用QQ,就启......
  • 第十四章《多线程》第6节:线程通信
    ​之前所有的例子中,线程的执行都具有一定的随机性。如果希望线程能够有序的执行,必须使用线程通信技术。Java语言提供了一些线程通信的机制能够保证线程的有序执行,本小节将详......
  • 第十四章《多线程》第7节:线程组
    ​多个线程可以组成一个线程组,线程组可以对一批线程统一调度和管理,也就是说,控制一个线程组相当于控制这个线程组中所有的线程。Java语言以ThreadGroup这个类来表示线程组这......
  • 第十四章《多线程》第9节:ThreadLocal类
    ​如果多个线程共用一个对象,那么这个对象的属性值对于这些线程都是相同的。例如有一个a对象,它有一个x属性,如果x属性的值是1,那么对于任何一个线程而言,a对象的x属性都是1。但......
  • 第十四章《多线程》第4节:控制线程
    ​从14.3小节所列举的各个例子可以很明显的看出:线程的执行有一定的随机性,如果不加以适当控制,会导致执行结果的不确定性。实际开发过程中,很多情况下都需要让线程按照程序员期......
  • 第十四章《多线程》第5节:线程同步
    ​当两个或两个以上的线程需要共享资源,它们需要某种方法来确定资源在某一刻仅被一个线程占用,达到这个目的的过程叫做同步。如果线程在操作共享资源时没有实现同步,那么很有可......
  • 第十四章《多线程》第1节:线程基本原理
    ​计算机上可以运行程序,每一个正在运行着的程序都被称为“进程”,每个进程都拥有独立的系统资源以及地址空间,在没有进程允许的情况下,另一个用户进程不能访问这个进程的地址空......
  • 第十四章《多线程》第2节:线程的生命周期
    ​线程在被创建后会经历多个状态最后直至死亡,这个过程称为线程的“生命周期”。生命周期中包含很多状态,这些状态有:新生、就绪、运行、阻塞和死亡。线程有可能在几种状态之间......
  • 第十四章《多线程》第3节:创建线程
    ​Java语言中有一个专门表示线程的Thread类,这个类位于java.lang包下,因此在使用这个类时无需引入。Thread的方法定义了线程的基本操作,下面的表14-1展示了Thread类所定义的方......
  • Win10多用户同时登陆
    1.说明:(1)Win服务器版默认是支持多用户登陆的,甚至可以在主机上用不同用户自己远程登陆自己,如windowserver2016。(2)Win10正常情况下是不允许用户同时远程的,即一个用户......