位置: 编程技术 - 正文

【java多线程的优点】(java多线程用法)

编辑:rootadmin

推荐整理分享【java多线程的优点】(java多线程用法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:java多线程有几种实现方法实战,java多线程最佳实践,java多线程总结,java多线程用法,java多线程用法,多线程java多线程,java多线程实现原理,java多线程用法,内容如对您有帮助,希望把文章链接给更多的朋友!

原文: Jenkov 翻译:古圣昌 校对:欧振聪

尽管面临很多挑战,在java学习中多线程有一些优点使得它一直被使用。这些优点是:

资源利用率更好程序设计在某些情况下更简单程序响应更快资源利用率更好

想象一下,一个应用程序需要从本地文件系统中读取和处理文件的情景。比方说,从磁盘读取一个文件需要5秒,处理一个文件需要2秒。处理两个文件则需要:

5秒读取文件A2秒处理文件A5秒读取文件B2秒处理文件B---------------------总共需要秒复制代码从磁盘中读取文件的时候,大部分的CPU时间用于等待磁盘去读取数据。在这段时间里,CPU非常的空闲。它可以做一些别的事情。通过改变操作的顺序,就能够更好的使用CPU资源。看下面的顺序:5秒读取文件A5秒读取文件B &#; 2秒处理文件A2秒处理文件B---------------------总共需要秒复制代码

CPU等待第一个文件被读取完。然后开始读取第二个文件。当第二文件在被读取的时候,CPU会去处理第一个文件。记住,在等待磁盘读取文件的时候,CPU大部分时间是空闲的。

【java多线程的优点】(java多线程用法)

总的说来,CPU能够在等待IO的时候做一些其他的事情。这个不一定就是磁盘IO。它也可以是网络的IO,或者用户输入。通常情况下,网络和磁盘的IO比CPU和内存的IO慢的多。

程序设计更简单

在单线程应用程序中,如果你想编写程序手动处理上面所提到的读取和处理的顺序,你必须记录每个文件读取和处理的状态。相反,你可以启动两个线程,每个线程处理一个文件的读取和操作。线程会在等待磁盘读取文件的过程中被阻塞。在等待的时候,其他的线程能够使用CPU去处理已经读取完的文件。其结果就是,磁盘总是在繁忙地读取不同的文件到内存中。这会带来磁盘和CPU利用率的提升。而且每个线程只需要记录一个文件,因此这种方式也很容易编程实现。

程序响应更快将一个单线程应用程序变成多线程应用程序的另一个常见的目的是实现一个响应更快的应用程序。设想一个服务器应用,它在某一个端口监听进来的请求。当一个请求到来时,它去处理这个请求,然后再返回去监听。

服务器的流程如下所述:

while(server is active){ listen for request process request}复制代码如果一个请求需要占用大量的时间来处理,在这段时间内新的客户端就无法发送请求给服务端。只有服务器在监听的时候,请求才能被接收。另一种设计是,监听线程把请求传递给工作者线程(worker thread),然后立刻返回去监听。而工作者线程则能够处理这个请求并发送一个回复给客户端。这种设计如下所述:while(server is active){ listen for request hand request to worker thread}复制代码

这种方式,服务端线程迅速地返回去监听。因此,更多的客户端能够发送请求给服务端。这个服务也变得响应更快。

桌面应用也是同样如此。如果你点击一个按钮开始运行一个耗时的任务,这个线程既要执行任务又要更新窗口和按钮,那么在任务执行的过程中,这个应用程序看起来好像没有反应一样。相反,任务可以传递给工作者线程(word thread)。当工作者线程在繁忙地处理任务的时候,窗口线程可以自由地响应其他用户的请求。当工作者线程完成任务的时候,它发送信号给窗口线程。窗口线程便可以更新应用程序窗口,并显示任务的结果。对用户而言,这种具有工作者线程设计的程序显得响应速度更快。

【如何创建并运行java线程】 原文链接译者:章筱虎校对:方腾飞在java学习中,Java线程类也是一个object类,它的实例都继承自java.lang.Thread或其子类。可以用如下方式用java中创建一个

Android WiFi--系统架构 原文链接请参考:

Android:wpa_supplicant决定选择哪种驱动 1,main函数的入口:external/wpa_supplicant_8/wpa_supplicant/main.c2,init.rc中通过参数指定要加载哪个驱动3,wpa_supplicant中加载驱动的原理main.c:main()--wpa_supplicant.c:wp

标签: java多线程用法

本文链接地址:https://www.jiuchutong.com/biancheng/374549.html 转载请保留说明!

上一篇:Unity3D中 Android插件findviewbyid返回null的解决办法(unity3d插件手机版)

下一篇:【如何创建并运行java线程】(创建步骤)

  • 什么叫做增值税进项税额
  • 坏账准备怎么做T型账户
  • 拍卖行业收取手续费标准
  • 外国常驻代表机构办理税务登记
  • 财务费用利息收入在贷方表示什么
  • 一般纳税人的进项税额计入成本吗
  • 小规模纳税人开具不动产发票税率
  • 资产减值损失属于什么科目借方增加还是减少
  • 接受捐赠收入会计利润含税吗
  • 补偿性余额利息的计算公式
  • 申请国家知识产权的条件
  • 餐饮店投资入股注意事项
  • 筹建期的行政罚款的账务处理怎么做?
  • 假设公司为增值税一般纳税人
  • 退税发票勾选后开红冲发票怎么申报
  • 用人单位在职职工年平均工资怎么算
  • 吸收合并公司后的债务处理
  • win11资源管理器卡死
  • 什么是餐饮服务
  • 去年的发票今年怎么做会计分录
  • linux运行后出现乱码
  • 事假扣款进什么科目
  • wordpress 常用函数
  • 巴拉诺维奇市
  • 用盈余公积弥补以前年度亏损
  • 财务人员应计入什么科目
  • 外贸进出口企业退税
  • 实行核定征收印花税的纳税期限为一个月税额较小的
  • 发行的企业债券是什么会计科目
  • php rsa
  • thinkphp验证码刷新
  • 森佩塑胶
  • 物流公司交保险是骗局吗
  • 第二季度企业所得税怎么计提
  • 装修费还没摊销完就搬家了
  • python处理mysql如何拿到表头
  • 企业什么时候才能按工龄退休
  • 资产负债表里长期股权投资是什么意思
  • 销售防疫物资是什么意思
  • 供应商发票多开了如何处理?
  • 经济利益的总流入
  • 小型商贸企业
  • 任意盈余公积金的用途
  • 工会经费可以列支哪些项目
  • 财务负责人岗位要求
  • 法定公益金和法定保险金
  • 无形资产如何摊销 当月还是下月
  • 固定资产报废的账务处理
  • 收到赞助费如何开发票
  • 工程项目前期费用包括哪些
  • 双倍余额递减法计提折旧公式
  • 专项应付款的账务处理营业外收入
  • 公司支付账户
  • 银行转账支付方式包括哪些
  • 为什么要挂靠其他劳务派遣公司?有什么利弊?
  • 公益募捐的基金是什么
  • 发票作废后对方还能认证吗
  • 使用SSIS创建同步数据库数据任务的方法
  • redhat6.5安装图形界面
  • linux系统中的用户大体可分为三组
  • macos 修改mac
  • sguard是什么文件夹
  • rapapp.exe - rapapp是什么进程 有何作用
  • windows自动启动设置
  • 找回失窃的书本任务
  • Win10如何打开软键盘
  • win10 1511(win10 TH2)如何调整开始屏幕磁贴大小?
  • win10超级按钮
  • 红石cpu教程
  • tf.nn.tanh函数
  • unity3d第一人称射击游戏教程
  • 简单强悍是哪首歌
  • 浅谈一下新冠的好处
  • 批处理中数字可以用什么代替
  • javascirpt
  • 留抵税额过多怎么办
  • 北京定额发票查验
  • 青岛契税优惠
  • 高新区地税办税服务厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设