Java线程内存交互问题 回错贴了?我的问题是 在线程testThread启动后,为什么主线程更新基本类型和String(t1和s1)在线程运行时能实时传递,但list之类的对象就不行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我记得线程启动后会生成一个工作内存,存放主内存的变量的一份拷贝,为什么t1和s1还能实时更新到线程中呢?t1,s1不是局部变量,更新是肯定的,只是时机的问题。一般遇到sysnchronized同步时,会进行更新。System.out.println中就有synchronized块,所以你在输出的时候会进行更新。 回错贴了?我的问题是 在线程testThread启动后,为什么主线程更新基本类型和String(t1和s1)在线程运行时能实时传递,但list之类的对象就不行。不存在“存放主内存的变量的一份拷贝”这个。都是实时的,list.get(0)只能是start, list.get(1)才是end,没看见取。 run中有这么一段,如果如你所说是因为System.out的原因的话线程会一直接running。而且list也是全局变量while (t1 == 0){ System.out.println(threadName + " is running");} 回错贴了?我的问题是 在线程testThread启动后,为什么主线程更新基本类型和String(t1和s1)在线程运行时能实时传递,但list之类的对象就不行。不存在“存放主内存的变量的一份拷贝”这个。都是实时的,list.get(0)只能是start, list.get(1)才是end,没看见取。程序模拟得有问题,先结贴,周一找到代码后再开。 run中有这么一段,如果如你所说是因为System.out的原因的话线程会一直接running。而且list也是全局变量while (t1 == 0){ System.out.println(threadName + " is running");}你说的情况不会发生,原因有二,一个是重排序,一个是线程调度。 问一个语法问题Timer.this,这个是什么意思? javaSE:判断一个文本框的内容是否为空? 关于JAVA应用程序得部署问题 为什么String作为参数和基本数据类型一样用的值传递? 一个白痴问题,但路见不平,拔刀相助,谢谢 外国比较好的技术网站有哪些?或者bbs java 基础题求解!在线等待! 如何实现在jTextfield中从右侧输入,请各位高手指教,详细一点好吗? 狂晕,我的JB里怎么不能使用int类型? 如何配置JCREATOR?? java 线程画图问题 javaIO流复制文件
t1,s1不是局部变量,更新是肯定的,只是时机的问题。一般遇到sysnchronized同步时,会进行更新。System.out.println中就有synchronized块,所以你在输出的时候会进行更新。
我的问题是 在线程testThread启动后,为什么主线程更新基本类型和String(t1和s1)在线程运行时能实时传递,但list之类的对象就不行。
不存在“存放主内存的变量的一份拷贝”这个。
都是实时的,list.get(0)只能是start, list.get(1)才是end,没看见取。
while (t1 == 0){
System.out.println(threadName + " is running");
}
我的问题是 在线程testThread启动后,为什么主线程更新基本类型和String(t1和s1)在线程运行时能实时传递,但list之类的对象就不行。
不存在“存放主内存的变量的一份拷贝”这个。
都是实时的,list.get(0)只能是start, list.get(1)才是end,没看见取。程序模拟得有问题,先结贴,周一找到代码后再开。
while (t1 == 0){
System.out.println(threadName + " is running");
}
你说的情况不会发生,原因有二,一个是重排序,一个是线程调度。