为什么使用多线程(详解)

解释上下文切换:
CPU通过给线程分配时间片来使线程执行,每个时间片非常短,CPU通过时间片分配算法来循环执行任务,当前任务一个时间片后会切换到下一个任务,但此时会保存上一个任务的状态,以便下次再切换回这个任务时,还可以再加载这个任务的状态,所以任务从保存到再加载的过程就是一次上下文切换。

为什么使用多线程:
1) 更多的处理器核心:处理器上的核心数量越来越多,以及超线程技术的广泛运用,现在大多数计算机都比以往更加擅长并行计算,而处理器性能的提升方式,也从更高的主频向更多的核心发展。
程序在运行过程中创建多个多线程,一个线程在一个时刻只能运行在一个处理器核心上,试想一下,一个单线程程序在运行时时只能使用一个处理器核心,那么再多的处理器核心加入也无法显著提升该程序的执行效率。如果此时使用多线程,将计算机逻辑分配到多个核心处理器上,就会显著减少程序的处理时间,并随着更多处理器的加入而变得更加有效。
2) 更快的响应时间:有时我们会编写一些较为复杂的代码(这里的复杂不是说复杂的算法,而是复杂的业务逻辑),例如,一笔订单的创建,它包括插入订单数据、生成订单快照、发送邮件通知卖家和记录 货品销售数量等。用户从单击“订购”按钮开始,就要等待这些操作全部完成才能看到订购成功的结果。但是这么多业务操作,如何能够让其更快地完成呢?
在上面的场景中,可以使用多线程技术,即将数据一致性不强的操作派发给其他线程处理(也可以使用消息队列),如生成订单快照、发送邮件等。这样做的好处是响应用户请求的线程能够尽可能快地处理完成,缩短了响应时间,提升了用户体验。
3)更好的编程模型:Java为多线程编程提供了良好、考究并且一致的编程模型,使开发人员能够更加专注于问题的解决,即为所遇到的问题建立合适的模型,而不是绞尽脑汁地考虑如何将其多线程化。一 旦开发人员建立好了模型,稍做修改总是能够方便地映射到Java提供的多线程编程模型上。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值