package webDemo;
public class SyncTest {
static class PrintMachine{
// 线程不安全的
private StringBuilder sb = new StringBuilder();
public synchronized void print(String content) {
sb.append(Thread.currentThread().getName()).append(":")
.append(content).append("\r\n");
}
public synchronized void show() {
System.out.println(sb.toString());
}
}
public static void main(String[] args) {
PrintMachine mc = new PrintMachine();
// 用户1
Runnable run1 = new Runnable() {
@Override
public void run() {
mc.print("user1");
}};
// 用户2
Runnable run2 = new Runnable() {
@Override
public void run() {
mc.print("user2");
}};
new Thread(run1,"线程1的名字").start();
new Thread(run2,"线程2的名字").start();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
mc.show();
}
}