現在、ロックの激しい競合によるパフォーマンス低下の問題を解決しています。この問題を解決するために「ロック分割」を検討しています。
スケルトンの使用パターンは::
現在の使用状況 ::
public class HelloWorld{
public static synchronized method1(){
//uses resource 1
}
public static synchronized method2(){
//uses resource 2
}
}
私のアプローチ ::
method1()
とmethod2()
は同じリソースを使用しないため、ロックを分割することを考えています。現時点では、両方とも静的に同期されているため、両方ともクラス ロックを争っています。私はそれをに変更することを考えています::
public class HelloWorld{
**private static Object resr1Lock = new Object();**
public static method1(){
synchronized(resrc1Lock){
//uses resource 1
}
}
**private static Object resr2Lock = new Object();**
public static method2(){
synchronized(resrc2Lock){
//uses resource 2
}
}
}
彼らは今、「クラスロック」またはresr1Lock
/を争うのresrc2Lock
でしょうか?