线程类概念

1.线程

        线程是RTOS调度的基本单元,通过设定各个线程的运行规则,交给RTOS管理,这就是基于RTOS编程的基本思想。

        在面向对象编程的过程中,线程就是一个个独立、相互作用的功能清晰的小程序模块。

2.线程和进程的区别

        对于操作系统来说,一个任务就是一个进程,比如打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程。

有些进程还不止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”称为线程。

        进程=火车,线程=车厢

        (1) 不同进程间数据很难共享(一辆火车上的乘客很难换到另外一辆火车,比如站点换乘)

        (2) 同一进程下不同线程间数据很易共享(A车厢换到B车厢很容易)

        (3) 进程要比线程消耗更多的计算机资源(采用多列火车相比多个车厢更耗资源)

        (4) 进程使用的内存地址可以上锁,即一个线程使用某些共享内存时,其他线程必须等它结束,才能使用这一块内存。(比如火车上的洗手间)-"互斥"

        (5) 进程使用的内存地址可以限定使用量(比如火车上的餐厅,最多只允许多少人进入,如果满了需要在门口等,等有人出来了才能进去)-“信号量”

3.线程的上下文(context)

        即CPU内寄存器和PC的内容

4.线程切换(上下文切换)

        当多线程内核决定运行另外的线程时,它将正在运行线程的当前上下文保存在线程自己的栈中(RAM中的线程当前状况保存区Task’s Context Storage Area)。再将要运行线程的当前状况从其线程栈中装入 CPU的寄存器,开始下一个线程的运行。

5.死锁

        (1) 概念

                指两个或两个以上的线程无限期地互相等待对方释放其所占资源。

        (2)  产生的必要条件

                资源的互斥访问、资源的不可抢占、资源的请求保持、线程的循环等待。

        (3) 解决方案

                破坏产生死锁的任一必要条件

                例如规定所有资源仅在线程运行时才分配,其他任意状态都不可分配,破坏其资源请求保持特性。

6.线程间通信

        指线程间的信息交换,实现同步及数据传输。同步是指根据线程间的合作关系,协调不同线程间的执行顺序。

        线程间通信方式主要有:事件、消息队列、信号量、互斥量等。

7.线程优先级

        每个线程都有优先级。

        (1) 优先级驱动(priority-driven)

                在一个多线程系统中,正在运行的线程总是优先级最高的线程。在任何给定的时间内,总是把 CPU 分配给优先级最高的线程。

        (2) 优先级反转(priority-inversion)

                当一个线程由于等待比它优先级低的线程释放资源而被阻塞时,这种现象被称为优先级反转。

                优先级继承可以解决优先级反转问题。

        (3) 优先级继承(priority-inheritance)

                用来解决优先级反转问题。

                当优先级反转发生时,较低优先级线程的优先级暂时提高,以匹配较高优先级线程的优先级。这样,就可以使较低优先级线程尽快地执行并且释放较高优先级线程所需要的资源。

8.资源(resources)

        任何为线程所占用的实体。资源可以是I/O、变量、结构或数组等。

9.共享资源

        可以被一个以上线程使用的资源。为防止数据被破坏,每个线程在使用共享资源时,必须独占资源,即互斥

10.互斥(mutual exclusion)

        用于控制多线程对共享数据进行顺序访问的同步机制。在多线程应用中,当两个或更多的线程同时访问同一数据区时,就会造成访问冲突,互斥能使它们依次访问共享数据而不引起冲突。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值