JAvaスレッドロックの詳細とインスタンスコード
1619 ワード
JAvaスレッドロック
Javaスレッドでsynchronizedキーワードを用いて同期を達成する
synchronizedロック方法、ロッククラス、ロックオブジェクト、ロックコードブロック
メソッドロック
クラスロック
オブジェクトロック
汽車の切符を売るのを例にとると
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!
Javaスレッドでsynchronizedキーワードを用いて同期を達成する
synchronizedロック方法、ロッククラス、ロックオブジェクト、ロックコードブロック
メソッドロック
// this
public synchronized void print() {
System.out.println(" ");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
クラスロック
public synchronized void print(String msg) {
//
synchronized (MyThread.class) {
System.out.println(msg);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
オブジェクトロック
汽車の切符を売るのを例にとると
public class Window extends Thread {
public Window(String name) {
super(name);
}
static int tick = 100;
static String obj = new String();
@Override
public void run() {
//
while (tick > 0) {
//
//
//
synchronized (obj) {
if (tick > 0) {
System.out.println(getName() + " 【" + tick + "】 ");// cpu
tick--;
}
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!