Java多线程产生安全问题及对策分析

来源 :中国新通信 | 被引量 : 0次 | 上传用户:sddmymj
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  引言:在Java语言程序设计中, 多线程的并发执行可以提高程序的运行效率,但是,当多线程去访问同一个资源时,可能会引发安全问题,特别是用到线程休眠的时候,容易出现安全问题,为了解决这样的问题,第一尽量不要使用线程休眠,第二种方法是使用线程同步,限制某个资源在同一时刻只能被一个线程去访问。
  一、程序示例1
  我们写一个简单卖票程序,使用多线程去卖10张票,4个窗口卖10张票,我们给出第一个Java多线程程序代码及运行结果:


  运行结果:
  窗口1-----卖出的票9 窗口3-----卖出的票8 窗口4-----卖出的票7 窗口1-----卖出的票6窗口2-----卖出的票5 窗口3-----卖出的票4 窗口4-----卖出的票3窗口2-----卖出的票2
  窗口1-----卖出的票1 窗口3-----卖出的票0 窗口4-----卖出的票-1 窗口2-----卖出的票-2
  结果分析:出现卖出的票0,-1,-2张票,很显然不符合逻辑,原因在于线程休眠Thread.sleep(10)语句,当前线程进入休眠,但是CPU不会休息,马上会调入其他线程来处理,可是当前线程并没有处理完毕(卖出票),造成还有多余的票没有卖完,并由其他线程去卖(出现0,-1,-2张票)。如果没有线程休眠语句,运行结果符合逻辑,不会出现0,-1,-2张票。
  二、程序示例2
  同样写一个简单的多线程卖票程序,使用线程同步来处理共享资源块,使用Java关键字synchronized来写一个同步方法来卖票,该同步方法在同一时刻只能由一个线程来访问,其他线程等待,保证了资源的安全性。


  结果分析:很显然运行结果符合我们的逻辑。
  三、Java多线程产生安全性问题总结
  Java多线程产生的安全性问题,使用同步方法能解决很好的解决多线程安全问题,特别是解决了多线程同时访问共享数据时产生的安全问题,这就需要我们在代码设计上入手,养成良好的编码习惯和规范。
  参 考 文 献
  [1]传智播客高教产品研发部 .java基础入门.清华大学出版社
  [2] Eric. Java编程思想[M]. 第4版. 机械工业出版社
  [3]王保罗.Java面向对象程序设计[M]. 北京:清華大学出版社
其他文献
这世界上可以供人类食用的鱼类,海水也好,淡水也罢,林林总总,也有几千几万种之多。这所有的鱼,我们未必能够吃到,也未必能够见到。但是,平常常吃常见的那一些,你又是否知道它们的前生
【摘要】 随着互联网技术的发展与普及,我国电力工业正向特高压、智能电网、绿色发电的新阶段发展转变,新技术不断应用与电力系统中使得供电可靠性不断提高,但同时也使其运行控制难度在增大。在电力通信广域保护系统的理念下,可靠的通信是实现广域保护的关键之一。本文对电力通信中SCTP在广域后备保护信息传输中的应用进行分析研究。  【关键词】 智能电网 电力通信 SCTP 广域保护  从电力通信的角度来看,根据
【摘要】 改革开放后我国经济发展迅速,移动通信行业在这个过程中获得了非常大的进步,极大的方便了人们的生产和生活。但伪基站的出现对移动通信网络的正常运行和人们正常安全的使用通信工具造成了严重的影响,本文将对快速查找伪基站的策略进行分析。  【关键词】 快速 查找 伪基站  要想高效、快速的查找伪基站,就必须了解和掌握伪基站的运行原理,本文将对快速查找伪基站的技术运用进行分析,并在此基础上探索快速查找
【摘要】 IGBT作为一种功率半导体器件,在电能应用邻域得到广泛应用。在IGBT的使用过程中,要求功率开关器件降低损耗、提高效率、提高性能。本文就IGBT的损耗计算方法作了简要介绍,并就英飞凌IGBT作了功率损耗的仿真分析。  【关键词】 IGBT 功率损耗 计算方法 仿真The Simulation of The Power Loss for IGBT Base on IPOSIM(The 72
在我国农村社会进入转型的过程中,出现了一个新的群体——留守儿童。留守儿童在通过网络、媒体学习的同时,出于好奇心,会追求刺激和涉猎一些新颖的东西,而这些可能会误导留守
我国经济已经卷入经济全球化的浪潮之中,随着我国对外开放程度的逐年提高,关税总水平的逐步降低,加入WTO后我国几乎所有的企业都已经或即将面临来自国外的挑战,因此,提高企业的竞
【摘要】 当前网络技术的高速发展,对高校档案工作提出了新的要求。高校档案信息资源共享,让档案信息的布局变得更加科学,促进了高校档案管理工作再上新的台阶。高校可通过完善的网络,实现基本数据、专题数据和珍藏档案数据的校内、校际和社会共享,实现档案工作服务师生服务社会的目的。  【关键词】 网络环境 高校 档案信息 资源共享  在社会信息的演进之下,人们对于信息的获取需求越来越强烈,而网络为人们搜集和整
“我在秋天早晨的阳光中,呆呆地望着架子上的锅盆和盛调味料的瓶子,厨房就像是世界本身,世界是厨房。”——村上春树(人造卫星恋人)。
【摘要】 在中学信息技术课程中,多元化教学能够激发学生学习信息技术的热情,促使学生真正的掌握信息技术的本领,提高学生信息技术的能力水平。任务驱动教学模式有助于提高教学的灵活性,使课堂充满新意。自学讨论教学模式可以促进学生养成自主学习的好习惯,不断的提升自我进步的空间。协同合作教学模式综合全面的考虑了学生的差异性,促使学生相互帮扶,共同努力,增进同学情谊。  【关键词】 中学 信息技术 多元教学