当前位置:w88优德官网网文章中心网站开发Java → Java多线程变量共享分析(Thread)

Java多线程变量共享分析(Thread)

减小字体 增大字体 作者:w88优德官网网  来源:www.cuoxin.com  发布时间:2014-2-15 21:23:01
多线程对共享变量的访问,通过琐保证互斥访问。本章主要讨论如何在多线程间共享对象,保证其被安全访问。在编写多线程程序时,最重要的就是搞清楚哪些变量是共享的,哪些变量是不共享的。也就是要分析清楚其中的原理呀。实现线程安全的方法之一是不在线程间共享变量,将变量的使用范围限制在单个线程之内,即实现Thread Confinement。
因为最近要使用多线程就看了一些,对使用Thread类的子类创建线程的情况,总结如下:1.方法体内部定义的局部变量不共享这是因为方法内部定义的变量是在运行时动态生成的。每个线程都有一个自己的堆栈,用于保存运行时的数据。最容易理解的就是递归调用时候,每次的入栈出栈操作。如下,每次调用时,变量aa都是在运行时堆栈上保存的,方法结束变量也就释放了。public int fib(int n){ int aa; if(n==1 || n==0) return 1; else return fib(n-1)*n;}2.成员变量2.1 代码示例成员变量需要看变量指向的是否为同一个对象。看下面的代码示例:package file2;public class Analy { public static void main(String[] args) { Num i=new Num(0); //新建对象,准备传递给线程 new OwnThread(i).start(); //新建线程,并启动 new OwnThread(i).start(); //新建线程,并启动 System.out.println("主线程中i的值变为了:"+i.i); //获取目前对象i的数值 }}class OwnThread extends Thread{ Num id; //申明对象,默认null,就是没有指向任何实体 int sno; //申明int变量。因为系统默认初始化为0,所以应该是定义一个int变量 OwnThread(Num id) { this.id=id; } public void run() { for(int i=0;i<5;i++) { synchronized(this) { sno=id.i; //保存id.i的数值,到线程私有变量sno id.i++; try { Thread.sleep(1); } catch (InterruptedException e) {} } System.out.println(this.getName()+","+sno); } }}class Num //定义一个类{ int i; Num(int i) { this.i=i; }}共享同一个对象,线程可以交互,执行结果:2.2分析程序中主函数定义了Num对象的实例i,定义线程是传递到了Thread0和Thread1这样三个变量就共享了一个Num对象的实例。而线程Thread0和线程Thread1又有自己的私有变量sno,可以用来保存某一时刻的共享变量的数值。注意:
(1)Java中判断对象是否为同一个对象使用地址判断的。地址相同就是同一个对象,上面的三个就是同一个对象。
 (2)如果把上面的例子中共享的对象实例用基本数据类型替换是不行的。因为基本数据类型程序会自动的用默认值初始化,也就是申明和定义时一起的。此时在mian函数中定义线程,传递的基本数据类型参数,只能是初始化线程中的另一个对象,而不是同一个对象。3.总结总之,在多线程编程中,知道各个线程如何、怎么样共享数据是很重要的。如上面的程序,可以在主线程和其他两个子线程之间共享一个对象,来实现他们之间的交互处理。

本文引用网址:
在下列搜索引擎中搜索“Java多线程变量共享分析(Thread)”的相关信息:
谷歌搜索 百度搜索 360搜索 雅虎搜索 搜狗搜索 搜搜搜索 必应搜索 有道搜索
你可能还喜欢以下文章
  • 1如何做爱真人示范图片 男女ML常...
  • 2情侣酒店开房qvod 情侣做爱视频...
  • 3怎么做爱舒服?真人示范做爱姿...
  • 4如何做爱更舒服?教你做爱72式...
  • 5雨后小故事 qq表情姐弟雨后小故...
  • 1dede:arclist 实现分页!-织梦...
  • 2免费软文发布平台汇总
  • 3dedecms实现频道封面和列表页调...
  • 4织梦DEDECMS {dede:field name...
  • 5首页flash幻灯片不显示解决方法...
  • 1嫩白少妇与猛男户外疯狂车震遭...
  • 2怎样爱爱最爽?性爱姿势真人图...
  • 3中国女大学生的淫靡生活
  • 4舒淇艳照门事件 舒淇不雅照ed2...
  • 5合肥艳照门事件 合肥艳照门全套...
  • 1如何做服务器安全维护?有哪些...
  • 2Windows Server 2003系统性能优...
  • 3IIS中的 MIME类型
  • 4设置不求人:搞懂任务栏显示项目...
  • 5远程管理Win2003服务器技巧
  • 赞助商广告

    图片文章导读