java字段同步问题 public class test{ private static boolean flag= true; public static void remove() { flag= false; } public test(){ if(test){ //请问调用remove()后立即调用test(), 在这里有同步问题吗?,多个实例操作会有问题吗?谢谢 //需要在flag上加volatile吗? } } } 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 代码是否应该修改为if(flag){...}?如果是的话在多线程情况下也会出现问题的,如果一个线程刚好判断了flag,发现flag是true,那么他将进入if块,这时候被挂起了,执行另外一个线程,也判断if(flag),但是这个时候flag还没被修改,所以也会进入if块,这样就导致了2个线程都会去执行if块里面的代码,这样就不满足同步。 if(test) ? if(flag)吧?有同步问题,flag静态变量,属于类的。public test() 是构造方法,LZ在里面要处理什么?觉得这样结构不是太好。构造方法就写构造对象用的代码,其它逻辑在别的方法里写。 不好意思 写错了 应该是if(flag) 关于jdbc编程 请问下System.out.println("12".split("").length);输出为什么是3 java中的byte为什么会出错 byte b =0xff??? 如何在java中判断得到的URL是绝对路径还是绝对路径? 为什么不能删除呢? 求助:各位大虾帮忙,Java 怎么实现搜索二叉树呢? 日期判断的问题! 急问:java里的线程之间怎么通信? 连接池的问题 求助java数组删除重复数字 java图书管理系统求解 AWTUtilities.setWindowOpacity的窗体打成jar包不能半透明
如果是的话在多线程情况下也会出现问题的,如果一个线程刚好判断了flag,发现flag是true,那么他将进入if块,这时候被挂起了,执行另外一个线程,也判断if(flag),但是这个时候flag还没被修改,所以也会进入if块,这样就导致了2个线程都会去执行if块里面的代码,这样就不满足同步。
有同步问题,flag静态变量,属于类的。public test() 是构造方法,LZ在里面要处理什么?觉得这样结构不是太好。构造方法就写构造对象用的代码,其它逻辑在别的方法里写。