package com.sinosuperman;
public class TestQuestion {
static Shared shared = new Shared("michael", "guangzhou");
public static void main(String[] args) {
A a = new A();
B b = new B();
System.out.print(shared.getName() + ", ");
for (int i = 0; i < 20; ++i) {
a.run();
System.out.print(shared.getName() + ", ");
b.run();
System.out.println(shared.getName());
}
}
public static class A extends Thread {
public void run() {
synchronized (shared) {
shared.setName("corleone");
}
}
}
public static class B extends Thread {
public void run() {
synchronized (shared) {
shared.setName("chao");
}
}
}
public static class Shared {
String name;
String addr;
public Shared(String name, String addr) { this.name = name; this.addr = addr; }
public String getName() { return this.name; }
public String getAddr() { return this.addr; }
public void setName(String name) { this.name = name; }
public void setAddr(String addr) { this.addr = addr; }
}
}
Java之线程协调
最新推荐文章于 2024-03-20 10:15:00 发布