第十六章 多线程

  线程(Thread)是编程中的一个很重要的概念。在很多情况下,采用多线程编程,可以提高应用程序响应速度、提高运行效率、提升吞吐量。
  应用程序的操作大致可以分为两种类型,一种是占用CPU的(CPU-Bound),比如科学运算、循环语句等;一种是不占用或极少占用CPU的(I/O-Bound),比如与各种外围设备的交互,包括硬盘、串口、键盘、TCP网络等。由于外围设备的运行速度很慢,CPU经常会处于等待状态,因此,将对外围设备的读取、写入、等待放到新建的线程中,以保证主线程可以立即执行后续的操作,这样是可以显著提高运行效率的。但是,如果将两组耗用CPU的操作分放到两个线程中“同时”执行,并且应用程序运行在单核单CPU计算机上,那么并不会提高效率,因为CPU同时只能执行来自一个进程的一条线程,它会为每个线程分配一小段时间(称作时间片,通常为几十毫秒)来模拟它们的同步运行。CPU的线程切换也需要时间(两毫秒左右),执行保存、还原运行现场,挂起、继续线程等操作。当一个线程的时间片结束或被中断时,CPU会转去执行其他线程,此时称该线程被抢占了。
  线程有以下几个常用的属性:

  • ManagedThreadId属性,托管线程Id,在进程内唯一。
  • Name属性,线程的名称,默认为空。
  • ThreadState属性,是一个位标记,描述了线程的当前运行状态。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值