|
|
class One {
public static void main(String[] args) {
Two larry = new Two("Larry Bird", 7000);
Two michael = new Two("Michael Jordan", 3000);
// Thread one = new Thread(larry);
// Thread two = new Thread(michael);
System.out.println("Program started on " + new java.util.Date());
larry.run();
michael.run();
// one.start();
// two.start();
}
}
class Two /*implements Runnable*/ {
String name;
long delay;
Two (String name, long delay) {
this.name = name;
this.delay = delay;
}
public void run() {
try {
Thread.sleep(delay);
} catch (Exception e) { }
System.out.println(name + " at " + new java.util.Date());
}
}
Run this a few times (here's once):
Then we made a few changes (in blue).frilled.cs.indiana.edu%javac One.java frilled.cs.indiana.edu%java One Program started on Tue Aug 07 19:02:27 EDT 2001 Larry Bird at Tue Aug 07 19:02:34 EDT 2001 Michael Jordan at Tue Aug 07 19:02:37 EDT 2001 frilled.cs.indiana.edu%
class One {
public static void main(String[] args) {
Two larry = new Two("Larry Bird", 7000);
Two michael = new Two("Michael Jordan", 3000);
Thread one = new Thread(larry);
Thread two = new Thread(michael);
System.out.println("Program started on " + new java.util.Date());
/* larry.run(); */
/* michael.run(); */
one.start();
two.start();
}
}
class Two implements Runnable {
String name;
long delay;
Two (String name, long delay) {
this.name = name;
this.delay = delay;
}
public void run() {
try {
Thread.sleep(delay);
} catch (Exception e) { }
System.out.println(name + " at " + new java.util.Date());
}
}
If you run it, here's what it looks like:
Now time runs simultaneously for both.frilled.cs.indiana.edu%java One Program started on Tue Aug 07 19:08:45 EDT 2001 Michael Jordan at Tue Aug 07 19:08:49 EDT 2001 Larry Bird at Tue Aug 07 19:08:53 EDT 2001 frilled.cs.indiana.edu%
So we make one last change.
class One {
public static void main(String[] args) {
Two larry = new Two("Larry Bird", 7000);
Two michael = new Two("Michael Jordan", 3000);
Thread one = new Thread(larry);
Thread two = new Thread(michael);
System.out.println("Program started on " + new java.util.Date());
one.start();
two.start();
}
}
class Two implements Runnable {
String name;
long delay;
Two (String name, long delay) {
this.name = name;
this.delay = delay;
}
public void run() {
while (true) {
try {
Thread.sleep(delay);
} catch (Exception e) { }
System.out.println(name + " at " + new java.util.Date());
}
}
}
Here's how it runs.
So now you can start studyingfrilled.cs.indiana.edu%java One Program started on Tue Aug 07 19:13:58 EDT 2001 Michael Jordan at Tue Aug 07 19:14:01 EDT 2001 Michael Jordan at Tue Aug 07 19:14:04 EDT 2001 Larry Bird at Tue Aug 07 19:14:05 EDT 2001 Michael Jordan at Tue Aug 07 19:14:07 EDT 2001 Michael Jordan at Tue Aug 07 19:14:10 EDT 2001 Larry Bird at Tue Aug 07 19:14:12 EDT 2001 Michael Jordan at Tue Aug 07 19:14:13 EDT 2001 Michael Jordan at Tue Aug 07 19:14:16 EDT 2001 Larry Bird at Tue Aug 07 19:14:19 EDT 2001 Michael Jordan at Tue Aug 07 19:14:19 EDT 2001 Michael Jordan at Tue Aug 07 19:14:22 EDT 2001 Michael Jordan at Tue Aug 07 19:14:25 EDT 2001 Larry Bird at Tue Aug 07 19:14:26 EDT 2001 Michael Jordan at Tue Aug 07 19:14:28 EDT 2001 Michael Jordan at Tue Aug 07 19:14:31 EDT 2001 Larry Bird at Tue Aug 07 19:14:33 EDT 2001 Michael Jordan at Tue Aug 07 19:14:34 EDT 2001 Michael Jordan at Tue Aug 07 19:14:37 EDT 2001 Larry Bird at Tue Aug 07 19:14:40 EDT 2001 Michael Jordan at Tue Aug 07 19:14:40 EDT 2001 Michael Jordan at Tue Aug 07 19:14:43 EDT 2001 Michael Jordan at Tue Aug 07 19:14:46 EDT 2001 Larry Bird at Tue Aug 07 19:14:47 EDT 2001 Michael Jordan at Tue Aug 07 19:14:49 EDT 2001 Michael Jordan at Tue Aug 07 19:14:52 EDT 2001 Larry Bird at Tue Aug 07 19:14:54 EDT 2001 Michael Jordan at Tue Aug 07 19:14:55 EDT 2001 Michael Jordan at Tue Aug 07 19:14:58 EDT 2001 frilled.cs.indiana.edu%
Threads. That's all I had to say.