当我们说使用synchronized关键字锁定一个对象时,它是否意味着我们正在获取整个对象的锁定或仅获取块中存在的代码?
在以下示例中listOne.add是同步的,是否意味着如果另一个线程访问listOne.get它将被阻塞,直到第一个线程离开此块?如果第二个线程在第一个线程仍在同步块中时访问同一对象的实例变量上的listTwo.get或listTwo.add方法,该怎么办?
List<String> listONe = new ArrayList<String>();
List<String> listTwo = new ArrayList<String>();
/* ... ... ... */
synchronized(this) {
listOne.add(something);
}
Run Code Online (Sandbox Code Playgroud) 这些工具也被称为安全扫描程序.我正在寻找这样的开源和免费扫描程序,用于Ajax驱动的grails/Java Web应用程序,它将识别主要的安全漏洞,如注入和XSS攻击.OWASP Top 10确定了这十大安全风险.
作为一个额外的问题,为此目的,什么是Java/groovy源代码级扫描程序?