首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

启用之后就能下载文件速度翻倍的“多线程”技术是咋回事?

多线程是有效提升程序运行效率的方式之一。它还在提升优化算法、提高硬件配置、分布式计算、网格计算的效率方面起着重要作用。

让我们从一个简单的问题开始:水箱有五个排水孔。打开一个排水孔把水箱倒空需要一个小时。如何使水箱快速排空并计算排空时间?这个问题包含了多线程的原理。线程是程序执行的最小单位。排水孔是一根线。打开排水孔称为单线程程序,打开多个排水孔称为多线程程序。如果一个程序有更多的线程,这个一个程序中多个线程获得CPU的概率更高,时间更长,执行速度更快

获取CPU的技术术语是“获取时间片”。也就是说,CPU将所有的时间分成若干片,并不断地将每个片分配给不同的线程执行,以保证每个程序都有执行的机会,没有程序会一直占用CPU。

操作系统相当矛盾。它似乎专注于执行一个程序。事实上,它为其他应用程序分配了很多时间片。然而,投票过程非常快,人们根本感觉不到。例如,当我们同时打开word编辑文档和QQ音乐听歌曲时,CPU的时间片总是在两个程序之间分配。word和QQ音乐程序之间也可能有一个时间片被全部停止,这对人们来说是难以察觉的。

多线程有两种常见情况:

(1) 启动多个线程来做不同的事情。目的是同时做许多事情。

(2) 启动多个线程执行相同的操作(例如,上面的排水示例),以提高效率。

当然,多线程也有缺点,就是多个线程的时序不好控制,多个线程之间的共享变量控制难度比较大,通知机制复杂,且调试困难。巧用多线程编程不仅是优秀程序员的自我修养,也是提高程序运行效率的利器之一。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200317A0UNQR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券