Synchronized
2018-05-28 本文已影响13人
JaedenKil
public class TestSynchronized {
private int x = 0;
private void printMessage(String threadName, String message, int addition) {
System.out.println("From Thread " + threadName + " Message: " + message);
x += addition;
System.out.println("x = " + x);
}
public static void main(String[] args) {
TestSynchronized testSynchronized = new TestSynchronized();
Thread thread01 = new Thread() {
@Override
public void run() {
for (int i = 1; i <= 3; i++) {
testSynchronized.printMessage("Thread 01","Round " + i, 3);
}
}
};
thread01.start();
Thread thread02 = new Thread() {
@Override
public void run() {
for (int i = 1; i <= 3; i ++) {
testSynchronized.printMessage("Thread 02", "Round " + i, 5);
}
}
};
thread02.start();
}
}
From Thread Thread 01 Message: Round 1
From Thread Thread 02 Message: Round 1
x = 8
x = 3
From Thread Thread 02 Message: Round 2
x = 13
From Thread Thread 01 Message: Round 2
From Thread Thread 02 Message: Round 3
x = 16
x = 21
From Thread Thread 01 Message: Round 3
x = 24
public class TestSynchronized {
private int x = 0;
private synchronized void printMessage(String threadName, String message, int addition) {
System.out.println("From Thread " + threadName + " Message: " + message);
x += addition;
System.out.println("x = " + x);
}
public static void main(String[] args) {
TestSynchronized testSynchronized = new TestSynchronized();
Thread thread01 = new Thread() {
@Override
public void run() {
for (int i = 1; i <= 3; i++) {
testSynchronized.printMessage("Thread 01","Round " + i, 3);
}
}
};
thread01.start();
Thread thread02 = new Thread() {
@Override
public void run() {
for (int i = 1; i <= 3; i ++) {
testSynchronized.printMessage("Thread 02", "Round " + i, 5);
}
}
};
thread02.start();
}
}
From Thread Thread 01 Message: Round 1
x = 3
From Thread Thread 01 Message: Round 2
x = 6
From Thread Thread 01 Message: Round 3
x = 9
From Thread Thread 02 Message: Round 1
x = 14
From Thread Thread 02 Message: Round 2
x = 19
From Thread Thread 02 Message: Round 3
x = 24