线程,代码和数据–多线程Java程序实际运行的方式

有些事情是您在学术或培训班上没有学到的,经过几年的工作经验后才逐渐了解,然后才意识到,这是非常基本的事情,我为什么错过了这么多年。 了解多线程Java程序的执行方式就是其中之一。 您肯定已经听说过线程,如何启动线程,如何停止线程,诸如其独立的执行路径之类的定义,处理线程间通信的所有时髦库,但是在调试多线程Java程序时,您会斗争。

至少我可以从我的亲身经历中说出来。 在我看来,调试是真正的培训师,您将学到一个精妙的概念,并形成只有通过调试才能持续很长时间的理解。

在本文中,我将讨论有关任何程序执行的三个重要事项,而不仅仅是Java,线程,代码和数据。

一旦您对这三个函数如何协同工作有了很好的了解,您将更容易理解程序的执行方式,为什么某个错误仅在某些时候出现,为什么某个特定的错误会一直出现以及为什么某个特定的错误确实存在?随机。

线程,代码和数据如何协同工作

什么是程序? 简而言之,这是一段代码,将其翻译为CPU的二进制指令。 CPU是执行那些指令的人,例如从内存中获取数据,添加数据,减去数据等。总之,您编写的是您的程序,即代码。

在同一程序的不同执行之间,数据是不同的。 这不仅意味着重启程序,还意味着一个处理周期,例如,对于一个电子交易应用程序,处理一个订单就是一次执行。 您可以在一分钟内处理成千上万的订单,并且每次迭代都会改变数据。

还有一点要注意的是,您可以在代码中创建线程,然后将它们并行运行并执行代码,这些代码是在它们的run()方法内部编写的。 要记住的关键是线程可以并行运行。

当Java程序启动时,将创建一个称为主线程的线程,该线程执行在main方法内部编写的代码,如果创建线程,则这些线程由主线程创建并启动,一旦启动,它们便开始执行编写的代码其
run()方法。


因此,如果您有10个线程来处理订单,它们将并行运行。 简而言之,线程执行代码,并传入数据。现在,我们将讨论三种不同类型的问题

1)问题,总是会出现

2)问题,仅在某些时候出现,但与相同的输入内容一致

3)问题,这确实是随机的

问题一最有可能是由于错误的代码而引起的,也称为编程错误,例如访问程序的无效索引。
array ,在将其设置为null或什至在初始化之前访问Object的方法。 如您所知,它们很容易修复。

您只需要了解编程语言和API即可解决此错误。

第二个问题是数据而不是代码。 只是有时但总是带有相同的输入,可能是由于边界处理不正确,数据格式错误(例如订单)而没有某些字段(例如价格,数量等)。

您的程序应始终以健壮的方式编写,这样,如果输入的数据不正确,程序就不会崩溃。 影响只应与该订单有关,其余订单必须正确执行。

第三个问题很可能是由于多线程引起的,多线程执行的顺序和交织会导致竞争条件或死锁 。 它们是随机的,因为它们仅在某些随机事件发生时才会出现,例如,线程2在线程1之前获得CPU,从而锁定了错误的顺序。

请记住,线程调度程序和操作系统负责将CPU分配给线程,它们可以暂停它们,随时从它们中获取CPU,所有这些都可以创建一个独特的方案,从而暴露了多线程和同步问题。

您的代码从不依赖于线程等的顺序,它必须健壮才能在所有条件下完美运行。

简而言之,请记住线程使用给出的数据作为输入执行代码。 每个线程使用相同的代码,但使用不同的数据。 在调试问题时,请注意线程,代码和数据这三者。

感谢您到目前为止阅读本文。 如果您喜欢这篇文章,请与您的朋友和同事分享。 如果您有任何疑问或反馈,请留言。

翻译自: https://www.javacodegeeks.com/2019/03/multithreading-java-program-actually-run.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343680.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】 国家开放大学2020年春季 1306社会政策 参考试题

试卷代号:1309 2 0 2 0年春季学期期末统一考试 中国现代文学专题 试题(开卷) 2020年7月 一、单项选择题(每题1分,共10分。要求:将正确答案的序号填在括号内。每题只有一个正确答案,错选或多选均…

HDMI光端机是什么?hdmi光端机产品参数及性能特点介绍

HDMI光端机就是光信号传输的终端设备。在广泛领域应用中,往往需要把HDMI信号源输送远处进行处理。最为突出的问题有:远处接收到的信号出现偏色、模糊,信号产生重影和拖尾及网纹干扰。(多模)/(单模)HDMI视频光端机发送器和相应的光收发系列产品…

【渝粤教育】 国家开放大学2020年春季 1326社区护理学(本) 参考试题

试卷代号:1333 座位号口口 2 0 2 0年春季学期期末统一考试 古代诗歌散文专题 试题(开卷) 2020年7月 一、选择题(每题1分,共10分) 1.著名的乐府诗《木兰诗》属于( )。 A.汉乐府 B&…

html中的保存功能代码怎么写,java保存html代码怎么写

java保存html代码怎么写[2021-01-31 03:29:24] 简介:php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐&#xff…

【渝粤教育】 国家开放大学2020年春季 1373特殊教育概论 参考试题

试卷代号:1376 座位号□□ 2 0 2 0年春季学期期末统一考试 机械制造装备及设计 试题 2020年7月 一、单项选择题(从所给的四个选项中,找出你认为是正确的答案,将其编号填入括号内。每小题3分,共30分) 1&…

hdmi光端机运用于多媒体信息发布系统案例介绍

杭州飞畅科技HDMI光端机运用于多媒体信息发布等应用系统中,能将HDMI音视频信号进行远距离传输。用普通的HDMI电缆长距离传输,会出现信号差,容易受干扰,显示出来的图像会出现模糊、拖尾、分色等现象。如果传输距离短,就…

西门子实数转整数_西门子PLC指令全都翻译过来了!

点击蓝字关注我们有时我们关注的公众号消息比较多,错过了一些自己喜欢的消息,不能及时看到工控论坛的推送,我们可以给公众号加星标或置顶。那如何星标置顶呢?【打开一篇工控论坛公众号的文章,点击文章标题下方的蓝色字…

【渝粤教育】 国家开放大学2020年春季 1444药理学(本) 参考试题

试卷代号:1474 2 0 2 0年春季学期期末统一考试 临床医学概论(本) 试题 2020年7月 一、单项选择题(每题2分,共50分) 1.引起发热的病因甚多,临床上最常见的病因是( )。 A.感…

鸿蒙os怎么还没发布,关于鸿蒙OS系统!小米为何从支持到“失声”?看看中兴就知道了!...

鸿蒙OS在还没有正式召开发布会的时候,大家就一直很关注友商们对于鸿蒙OS的态度。此前中兴就表过态,他们不会考虑鸿蒙OS的系统,因为中兴自己有这一方面的规划。而在鸿蒙发布之前,除了中兴是正式的官方发出了相关的态度之外&#xf…

js webapp://_Project Student:维护Webapp(只读)

js webapp://这是Project Student的一部分。 其他职位包括具有Jersey的 Web服务 客户端,具有Jersey的 Web服务服务器 , 业务层 , 具有Spring数据的持久性 ,分片集成测试数据 , Webservice集成和JPA标准查询 。 当我开…

【渝粤教育】 国家开放大学2020年春季 2071美学与美育 参考试题

试卷代号:2083 2 0 2 0年春季学期期末统一考试 信息技术与教育技术(2) 试题(开卷) 2020年7月 一、单选题(每小题4分,共6小题.24分) 1.下面哪一项不是程序教学法的特点?( &#xff09…

光端机安装调试需注意的几大因素

安装光端机时要做好现场的防护措施,防潮、防水、防尘,同时注意现场的实际操作,必须配备合适的光纤使用,不能使用残缺故障的光纤,如果不匹配,则会严重影响光端机传输质量,涉及光缆熔接时&#xf…

catia钣金根据线段折弯_钣金折弯加工注意事项有哪些?钣金折弯要点介绍

钣金折弯时金属加工中常用到的一道工序,它的用途十分广泛,是通过折弯机把一种板材加工成各种角度,加上数控功能后,钣金折弯有效地提高了加工精度和生产效率。然而,在钣金折弯过程中存在着一些注意事项和要点&#xff0…

【渝粤教育】 国家开放大学2020年春季 2136管理会计 参考试题

试卷代号:2180 座位号□□ 2 0 2 0年春季学期期末统一考试 办公室管理 试题 2020年7月 一、单项选择题(请将正确答案的字母序号填在括号内,每小题2分, 共10分) 1.办公室管理的第一要义是( )。 A&#xff0e…

html代二级菜单的实例,jquery实现树形二级菜单实例代码

jquery实现的树形列表菜单(Menu Tree) .padding {height:300px;}This copyright notice must be kept untouched in the stylesheet atall times.The original version of this stylesheet and the associated (x)htmlis available at http://www.jb51.netCopyright (c) 2005-2…

【渝粤教育】 国家开放大学2020年春季 2246社会工作概论 参考试题

试卷代号:2302 2 0 2 0年春季学期期末统一考试 供应链管理 试题 2020年7月 一、单项选择题(每小题2分,共20分,将正确答案填入括号内) 1.供应链管理是一种全新的管理理念和方法,其核心是强调运用…

每个Java学习者都会犯的10大常见错误1

据说:“您的朋友会吞下您的错误,您的敌人会将它们呈现在盘子上”。 我绝对不是你的敌人,但我想向您介绍一些针对每个Java初学者的错误,我将在此博客“标牌”上就此做错。 当然只有我从CodeGym.cc课程分析系统收集的内容。 如果您还…

mac os 开启redis_Mac下配置Redis服务器(自启动、后台运行) | 学步园

Redis服务器在从诸多文章上看来,是个极为优秀的Key-value数据库软件。其NB之处可以从这篇文章中略知一二。主要参考首先是安装,它会默认安装到/usr/local/bin下cd /tmpwget http://redis.googlecode.com/files/redis-2.6.9.tar.gztar -zxf redis-2.6.9.t…

光端机使用时出现了故障怎样定位和处理

光端机,就是光信号传输的终端设备,但是客户在使用光端机的过程中难免会碰到一些问题,那么,我们在使用光端机时出现了故障该怎样定位和处理呢?接下来就由杭州飞畅科技的小编来为大家详细介绍下光端机出现故障时该怎样分…

【渝粤教育】 国家开放大学2020年春季 2412基础写作 参考试题

试卷代号:2437 座位号 2 0 2 0年春季学期期末统一考试 微积分基础 试题 2020年7月 附表 导数基本公式: 积分基本公式: 一、单项选择题(每小题4分,共20分) 1.函数的定义域为( ). A&a…