首页 / JAVA / JAVA多线程并发操作全局变量
JAVA多线程并发操作全局变量
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JAVA多线程并发操作全局变量,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2309字,纯文字阅读大概需要4分钟。
内容图文
现在我有一个需求:
?就是我从数据库获取一个值,但是返回给用户的过程中,后台的很多线程还是在操作这个变量,就是因为这个时间差,导致用户获取的值
?
package com.message.application; import com.sun.org.apache.xalan.internal.xsltc.runtime.Hashtable; public class ApplicationValue { private static Hashtable licenceKeyHashTable; static { System.out.println("ApplicationValue static代码块"); licenceKeyHashTable = new Hashtable(); licenceKeyHashTable.put("A", 1000000); } public static long getLicenKeyValue() { long value = Long.parseLong(licenceKeyHashTable.get("A").toString()); return value; } public static void setLicenKeyValue(long val) { licenceKeyHashTable.put("A", val); } }?
package com.message.quartz.schedule; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.message.application.ApplicationValue; import com.message.application.MessageContext; import com.message.services.interfaces.IMessageSV; public class MessageSchedule { private static Log log = LogFactory.getLog(MessageSchedule.class); public void send() throws Exception { log.info("=========================START========================="); //log.info(arg0); long currentVal = ApplicationValue.getLicenKeyValue(); log.info("当前线程名称:"+Thread.currentThread().getName()+":"+currentVal); if(getModNum() == 1) { log.info("名称为1的线程sleep3秒"); Thread.currentThread().sleep(3000); } ApplicationValue.setLicenKeyValue(--currentVal); log.info("=========================END========================="); } public void send2() throws Exception { log.info("=========================START========================="); int modNum = getModNum(); IMessageSV sv = (IMessageSV) MessageContext.getBean("IMessageSV"); sv.dealMessages(modNum); log.info("=========================END========================="); } public static int getModNum() { String tName = Thread.currentThread().getName(); String modNum = tName.substring(tName.length() - 1, tName.length()); log.info(tName + "-----modNum:" + modNum); return Integer.parseInt(modNum); } }?
原文:http://toknowme.iteye.com/blog/2212529
内容总结
以上是互联网集市为您收集整理的JAVA多线程并发操作全局变量全部内容,希望文章能够帮你解决JAVA多线程并发操作全局变量所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。