mdsk.net
当前位置:首页 >> jAvA 线程私有变量 >>

jAvA 线程私有变量

ThreadLocal变量 作用域是各自线程内部。私有变量作用域 属于该类的实例。 所以, ThreadLocal变量 只用于线程内部共享,是线程安全的。 私有变量线程不安全,例如,利用一个Runnable实例启动2个线程,这2个线程就可以共同拥有 私有变量。

java是面向对象语言,一切成员都会封装在一个类中,定义成private是为了更好地隐藏,对外暴露的是setter和getter方法,所以可以通过setter设置值,getter来取值,达到模块隐藏的目的。

你把他设置为私有的,当然获取不了了,可以修改为public或者为该对象增加get,set方法

主线程和两个线程是独立分开的 可能子线程还没执行完的时候主线程就执行完了所以可能是子线程的中间结果

这要看你这两个线程使用是不是同一个对象,我写个例子,你仔细看一下 public class Test {class MyThreads implements Runnable{private int flag = 0;public MyThreads(){}@Overridepublic void run() {System.out.println("flag = " + (++fla...

count和name虽然都是私有属性(外部不可直接调用),但是name可以通过Thread1(String name) 构造方法修改name的值,如果在两个线程里同时去修改name的值就有线程安全的问题了,而count没有提供修改其值的方法,所以是线程安全的。

public static String pub="";public static void main(String[] args) {final Thread t2=new Thread(){@Overridepublic void run() {//打印线程1传递过来的值System.out.println(pub);}};Thread t1=new Thread(){@Overridepublic void run() {S...

public class SubT extends Thread { private String name; public SubT(String name) { this.name = name; } @Override public void run() { System.out.println(this.name); super.run(); } public static void main(String[] args) { String ...

这个问题表达的不清晰,具体要在哪里访问呢? 一般可以在继承线程的类下面先声明变量,再写一个get set方法。然后再线程中初始化。这样要访问的话直接get set就可以了。

你这个全局变量是static变量吗?必须是static才是全局的 然后要保证这个调用全局变量的类和那个线程是在同一个进程 然后要考虑执行的顺序,保证赋值的线程先执行

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com