西安java培训教程-领航致远-如何防止线程在共享变量中并行存取?
西安java培训教程:在写一个多线程的应用程序的时候,许多程序员都喜欢抄近路。而这样会是他们的应用程序或者是小应用程序发生线程冲突。当两个或者两个以上的线程访问同一个数据的时候,就存在一定的概率(概率大小取决与墨菲法则)使得两个线程同时的访问或者修改同一个数据。不要愚蠢的认为这样的情况不会发生在单线程的应用程序中。当访问同一个数据的时候,你的线程就很可能被挂起,而第二个线程进入是就会覆盖个线程修改的地方。
这样的问题不是仅仅出现在多线程应用程序或者是小应用程序中的。如果你写了java api或者是java bean,你的代码就很可能不是线程安全的。即使你从来没有写过一个使用线程的单独的应用程序,人们也有可能使用你的程序。为了其他人,不仅仅是你,你就应该采取措施防止线程在共享变量中并行存取。
怎样来解决这个问题呢,最简单的就是让你的变量私有化。同时使用同步存取方法。存取方法允许访问似有的成员变量,但是仅仅是在一种控制方式中。下面的存取方法就能够以安全的方式修改计数器的值。
public class MyCounter
{
private int count = 0; // count starts at zero
public synchronized void setCount(int amount)
{
count = amount;
}
public synchronized int getCount()
{
return count;
}
}
西安java培训教程西安领航致远为您精心安排:
西安领航致远——专业的java软件开发技术培训中心。
2010年5月,北京领航致远科技有限公司进军IT培训。
2011年5月,领航致远登陆古城西安。
领航致远由经验丰富的IT一线师资创办。保留尚学堂原班人马,他们包括李腾飞、王博、何其锟、张志宇等培训界知名品牌师资。经过长达半年的筹备,2010年5月领航致远培训中心宣告成立。一年后的2011年5月,领航致远西安直属中心登陆西安。
网址:http://xalhzy.ebdoor.com / http://shop.ebdoor.com/Shops/1925387
领航致远专注于:西安java培训教程 西安java学堂 西安java课程培训中心 西安java课程培训学校 西安java课程培训,西安java培训课程 西安Java教程教学中心 西安Java教程教学机构 西安Java教程教学