Linux C编程第十四章多线程编程十个问题及解答

本文探讨了LinuxC编程中的多线程技术,包括线程的基本构成、多线程的优点和适用场景,以及如何指定线程属性等内容。文章还详细介绍了线程退出的方式、互斥锁的不同类型等关键知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       Linux C编程第十四章多线程编程十个问题及解答

 

1.一个线程包括哪些内容?

  一个指向当前被执行指令的指令指针;

  一个栈;

  一个寄存器值的集合,定义了一部分描述正在执行线程的处理器状态的值;

  一个私有的数据区。

 

 

2.为什么走了进程以后,还需要线程呢?

  在许多应用中会同时发生多种活动,某些活动会随着时间推移被阻塞,通过将这些应用程序分解为可以准并行运行的多个顺序进程,程序设计模型会变得简单起来;

  由于线程比进程更轻量级,所以它们更容易更快创建和撤销;

  在一些需要大量I/O处理和大量计算的情况下,拥有多线程允许这些活动彼此重叠进行。

 

 

3.多线程有什么优点?

  多线程技术使得响应速度更快,因为用户界面可以在进行其他工作的同时一直处于活动状态;

  当前没有进行处理的任务时可以将处理器时间让给其他任务;

  占用大量处理时间的任务可以定期将处理器时间让给其他任务;

  可以随时停止任务;

  可以分别设置各个任务的优先级以及优化性能。

 

 

4.什么情况下适合采用多线程处理?

  耗时或大量占用处理器的任务阻塞用户界面操作。

  各个任务必须等待外部资源。

 

 

5.多线程基本概念有哪些?

  线程,互斥锁,条件

线程: 创建,退出,操作;

互斥锁: 创建,销毁,加锁和解锁;

条件操作: 创建,销毁,触发,广播,等待。

 

 

6.线程退出的方式有哪些?

  线程从执行函数返回,返回值是线程的退出码;

  线程被同一进程的其他线程取消;

  调用pthread_exit()函数退出。

 

 

 

7.怎样指定线程属性?

  只需要创建并且填充一个pthread_attr_t类型的线程属性对象ATTR,并将其作为第二个参数传递给pthread_create就可以指定新创建线程的属性。

 

 

8.调度策略函数具有哪些参数?

  第一个参数是指向属性对象的指针,第2个参数是调度策略或指向调度策略的指针。

 

 

9.互斥锁有哪些类型?

  快速型;

  递归型: 同一线程循环给互斥量上锁,系统将会知道该上锁行为来自同一线程,那么就会同意线程给该互斥量上锁;

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值