线程控制块中包含的内容有:1、线程控制块ID;2、线程运行计数器;3、线程堆栈指针;4、堆栈起始地址;5、堆栈结束地址;6、堆栈大小;7、当前时间片(剩余运行时间);8、新的时间片等。线程控制块ID又称tx_thread_id。
一、线程控制块中包含的内容
- tx_thread_id:线程控制块ID
- tx_run_count:线程运行计数器
- tx_stack_ptr:线程堆栈指针
- tx_stack_start:堆栈起始地址
- tx_stack_end:堆栈结束地址
- tx_stack_size:堆栈大小
- tx_time_slice:当前时间片(剩余运行时间)
- tx_new_time_slice:新的时间片
- tx_ready_next:指向下一个就绪线程的指针
- tx_ready_previous:指向前一个就绪线程的指针
- tx_thread_name:线程名字指针
- tx_priority:线程优先级
- tx_state:线程当前状态
- tx_delayed_suspend:线程延迟挂起标志
- tx_suspending:线程挂起过程标志,正在挂起
- tx_preempt_threshold:抢占阈值
- tx_thread_entry:入口函数指针
- tx_thread_parameter:入口函数参数
- tx_thread_timer:线程计时器,用于线程sleep
- tx_suspend_cleanup:线程清理函数
- tx_suspended_next:指向下一个挂起线程的指针
- tx_suspended_previous:指向上一个挂起线程的指针
- tx_created_next:线程created list中,指向下一个线程指针
- tx_created_previous:线程created list中,指向上一个线程指针
- tx_additional_suspend_info:存储了指向suspend线程的接收缓冲区的指针或发送消息指针(等待消息)
二、引入线程的好处
- 并发执行在线程实体上,即处理机的调度(分配)发生在线程之间,减少了系统的时空开销。
- 系统创建或终止一个线程的开销要比创建或终止一个进程的开销小得多
- 线程之间通信效率要高于进程之间通信效率,进程之间的通信需要内核的介入。
延伸阅读
线程和进程的比较
- 调度———同一进程内线程切换不会引起进程切换 | 不同进程中的线程切换才会发生进程切换
- 并发性———进程之间可以并发执行 | 进程之间也可以并发执行
- 系统资源———进程是资源的分配单位(拥有者) | 线程共享进程所拥有的的全部资源
- 系统开销———进程创建和撤销开销大于线程 | 进程切换开销大于进程内线程
文章标题:线程控制块中包含了哪些内容,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/34425