第一種方式:繼承Thread類
public class ThreadDemo extends Thread{
@Override
public void run(){
int s = 0;
while(true){
int v = (int)(Math.random()*10);
s += v;
System.out.println(getName() + ": " + s);
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(s > 50){
System.out.println(getName() + ": " + "我贏了!!!");
System.exit(0);
}
}
}
public static void main(String[] args) {
ThreadDemo t1 = new ThreadDemo();
ThreadDemo t2 = new ThreadDemo();
ThreadDemo t3 = new ThreadDemo();
t1.setName("1號");
t2.setName("2號");
t3.setName("3號");
t1.start();
t2.start();
t3.start();
}
}
第二種方式:實現Runnable接口
public class ThreadDemo implements Runnable{
String name;
Thread t;
public ThreadDemo(){}
public ThreadDemo(String name){
this.name = name;
t = new Thread(this,name);
t.start();
}
@Override
public void run() {
int s = 0;
while(true){
int v = (int)(Math.random()*10);
s = s + v;
System.out.println(name+ ": " + s);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(s >= 50){
System.out.println(name + ": " + "我贏了!!!");
System.exit(0);
}
}
}
public static void main(String[] args) {
new ThreadDemo("1號");
new ThreadDemo("2號");
new ThreadDemo("3號");
}
}