一个麻烦的实时性问题
A生成多个线程,之后线程取A中的某个变量c,但是c又是在构造函数里面赋值的(实时性),我的做法是使用static方法取c(因为new A实在不方便),所以我把c定义成了static变量,请问这么写好不好?有什么问题?有没有别的好办法?
举例:
|
...........线程里面getparam()
A生成多个线程,之后线程取A中的某个变量c,但是c又是在构造函数里面赋值的(实时性),我的做法是使用static方法取c(因为new A实在不方便),所以我把c定义成了static变量,请问这么写好不好?有什么问题?有没有别的好办法?
举例:
|
不明白想做什么,能说得清楚一些么??
A生成多个线程,然后线程取A中的变量c,但是c又是在构造函数里面赋值的,怎么做?如果是C++的话,我可以delete这个A,但是java里面是自动回收的,我都搞不清楚是哪个实例调用方法。
A生成多个线程,c是在构造函数里面赋值,然后线程取A中的变量c。
我真的不明白你说得
比如class A,会生成多个现成B,现在B要访问A中的数据C是这个意思么??,而C是A构造方法赋值的??
是B要访问A中的数据C,c是通过A的构造函数赋的值。
是我讲得不清楚吗?怎么没回复?
|
我的意思就是线程D中的方法如何写?
可是多线程的是那个
进程解决的是资源的分配
现成解决的是功能
线程访问进程数据是没有任何问题的
直接访问就可以了
C是A构造的时候赋值的也就是必定存在一个A.c 构造函数之后你才可以spawn一个线程出来,从时序而言会有什么问题那??多线程访问最好进行原子访问,否则必须加锁。你可以画一下时序图,看一看B出现的时候A是否已经存在。
|
不知道是不是满足你的需求
[该贴被Coolyu0916于2007年04月18日 09:43修改过]
我把B里面写得更清楚点吧,B是实时生成的,但是根据条件执行A里的方法。
|
to Coolyu0916
:谢谢你耐心的回复,我的意思是 线程是A生成,但生成后就一直存在,而且是一次就生成所有线程,以后就不再生成线程了。而A是动态生成是经常变化的(A的实例会被清除),所以A的变量c也是变化的。以不变的线程取变化的A中的变化的c,这就是我烦恼的地方。
[该贴被zhwh19790于2007年04月18日 10:03修改过]
D中引用了A,所以A不会被gc收集的。如果想A是唯一的可以使用Singleton模式。
A不是唯一的,因为A是B动态生成的。