Created
March 7, 2017 07:27
-
-
Save sang4lv/0f4aef94c9650d5004d69ed9aa6e206a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Callme { | |
void call(String message) { | |
try { | |
Thread.sleep(1000); | |
} catch(InterruptedException e) { | |
System.out.println("Interrupted. Message is " + message); | |
} | |
System.out.print("[" + message); | |
System.out.println("]"); | |
} | |
} | |
class Caller implements Runnable { | |
Thread t; | |
private String message; | |
private Callme target; | |
Caller(Callme target, String message) { | |
this.target = target; | |
this.message = message; | |
t = new Thread(this); | |
t.start(); | |
} | |
Caller(Callme target, String message, int priority) { | |
this.target = target; | |
this.message = message; | |
t = new Thread(this); | |
t.setPriority(priority); | |
System.out.println(t.getPriority()); | |
t.start(); | |
} | |
public void run() { | |
target.call(message); | |
} | |
} | |
class Sync { | |
public static void main(String args[]) { | |
Callme target = new Callme(); | |
Caller ob1 = new Caller(target, "Hello", 1); | |
Caller ob2 = new Caller(target, "Synchronized", 2); | |
Caller ob3 = new Caller(target, "World", 3); | |
try { | |
ob1.t.join(); | |
ob2.t.join(); | |
ob3.t.join(); | |
} catch(InterruptedException e) { | |
System.out.println("Interrupted"); | |
} | |
} | |
} | |
// 输出: | |
// localhost:java angelawang$ java Sync | |
// 1 | |
// 2 | |
// 3 | |
// [World[Synchronized] | |
// [Hello] | |
// ] | |
// localhost:java angelawang$ java Sync | |
// 1 | |
// 2 | |
// 3 | |
// [Hello[World] | |
// [Synchronized] | |
// ] | |
// localhost:java angelawang$ java Sync | |
// 1 | |
// 2 | |
// 3 | |
// [Synchronized[World] | |
// [Hello] | |
// ] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment