java线程的举例2~6
TestThread2.java
public class TestThread2 {
public static void main(String args[]) {
Runner2 r = new Runner2();
Thread t1 = new Thread(r);
Thread t2 = new Thread(r);
t1.start();
t2.start();
}
}
class Runner2 implements Runnable {
public void run() {
for(int i=0; i<30; i++) {
System.out.println("No. " + i);
}
}
}
F:\java\Thread>javac TestThread2.java F:\java\Thread>java TestThread2 No. 0 No. 0 No. 1 No. 1 No. 2 No. 2 No. 3 No. 3 No. 4 No. 4 No. 5 No. 5 No. 6 No. 6 No. 7 No. 7 No. 8 No. 8 No. 9 No. 9 No. 10 No. 10 No. 11 No. 11 No. 12 No. 12 No. 13 No. 13 No. 14 No. 14 No. 15 No. 15 No. 16 No. 16 No. 17 No. 17 No. 18 No. 18 No. 19 No. 19 No. 20 No. 20 No. 21 No. 21 No. 22 No. 22 No. 23 No. 23 No. 24 No. 24 No. 25 No. 25 No. 26 No. 26 No. 27 No. 27 No. 28 No. 28 No. 29 No. 29 F:\java\Thread>
TestThread3.java
public class TestThread3{
public static void main(String args[]) {
Runner3 r = new Runner3();
Thread t = new Thread(r);
t.start();
}
}
class Runner3 implements Runnable {
public void run() {
for(int i=0; i<30; i++) {
if(i%10==0 && i!=0) {
try{
Thread.sleep(2000);
}catch(InterruptedException e){}
}
System.out.println("No. " + i);
}
}
}
F:\java\Thread>javac TestThread3.java F:\java\Thread>java TestThread3 No. 0 No. 1 No. 2 No. 3 No. 4 No. 5 No. 6 No. 7 No. 8 No. 9 No. 10 No. 11 No. 12 No. 13 No. 14 No. 15 No. 16 No. 17 No. 18 No. 19 No. 20 No. 21 No. 22 No. 23 No. 24 No. 25 No. 26 No. 27 No. 28 No. 29 F:\java\Thread>
TestThread4.java
public class TestThread4 {
public static void main(String args[]){
Runner4 r = new Runner4();
Thread t = new Thread(r);
t.start();
for(int i=0;i<100000;i++){
if(i%10000==0 & i>0)
System.out.println("in thread main i=" + i);
}
System.out.println("Thread main is over");
//使用shutDown关闭,不要使用stop
r.shutDown();
//t.stop();
}
}
class Runner4 implements Runnable {
private boolean flag=true;
public void run() {
int i = 0;
while (flag==true) {
System.out.print(" " + i++);
}
}
public void shutDown() {
flag = false;
}
}
F:\java\Thread>javac TestThread4.java F:\java\Thread>java TestThread4 0in thread main i=10000 1in thread main i=20000 2in thread main i=30000 3in thread main i=40000 4in thread main i=50000 5in thread main i=60000 6 7in thread main i=70000 8 9 10in thread main i=80000 11in thread main i=90000 12Thread main is over 13 F:\java\Thread>
TestThread5.java
public class TestThread5 {
public static void main(String args[]){
Runner5 r = new Runner5();
Thread t = new Thread(r);
t.start();
try{
t.join();
}catch(InterruptedException e){
}
for(int i=0;i<50;i++){
System.out.println("主线程:" + i);
}
}
}
class Runner5 implements Runnable {
public void run() {
for(int i=0;i<50;i++) {
System.out.println("SubThread: " + i);
}
}
}
F:\java\Thread>javac TestThread5.java F:\java\Thread>java TestThread5 SubThread: 0 SubThread: 1 SubThread: 2 SubThread: 3 SubThread: 4 SubThread: 5 SubThread: 6 SubThread: 7 SubThread: 8 SubThread: 9 SubThread: 10 SubThread: 11 SubThread: 12 SubThread: 13 SubThread: 14 SubThread: 15 SubThread: 16 SubThread: 17 SubThread: 18 SubThread: 19 SubThread: 20 SubThread: 21 SubThread: 22 SubThread: 23 SubThread: 24 SubThread: 25 SubThread: 26 SubThread: 27 SubThread: 28 SubThread: 29 SubThread: 30 SubThread: 31 SubThread: 32 SubThread: 33 SubThread: 34 SubThread: 35 SubThread: 36 SubThread: 37 SubThread: 38 SubThread: 39 SubThread: 40 SubThread: 41 SubThread: 42 SubThread: 43 SubThread: 44 SubThread: 45 SubThread: 46 SubThread: 47 SubThread: 48 SubThread: 49 主线程:0 主线程:1 主线程:2 主线程:3 主线程:4 主线程:5 主线程:6 主线程:7 主线程:8 主线程:9 主线程:10 主线程:11 主线程:12 主线程:13 主线程:14 主线程:15 主线程:16 主线程:17 主线程:18 主线程:19 主线程:20 主线程:21 主线程:22 主线程:23 主线程:24 主线程:25 主线程:26 主线程:27 主线程:28 主线程:29 主线程:30 主线程:31 主线程:32 主线程:33 主线程:34 主线程:35 主线程:36 主线程:37 主线程:38 主线程:39 主线程:40 主线程:41 主线程:42 主线程:43 主线程:44 主线程:45 主线程:46 主线程:47 主线程:48 主线程:49 F:\java\Thread>
TestThread6.java
public class TestThread6 {
public static void main(String args[]){
Thread t = new Runner6();
t.start();
for(int i=0; i<50; i++) {
System.out.println("MainThread: " + i);
}
}
}
class Runner6 extends Thread {
public void run() {
System.out.println(Thread.currentThread().isAlive());
for(int i=0;i<50;i++) {
System.out.println("SubThread: " + i);
}
}
}
F:\java\Thread>javac TestThread6.java F:\java\Thread>java TestThread6 MainThread: 0 MainThread: 1 true MainThread: 2 SubThread: 0 MainThread: 3 SubThread: 1 MainThread: 4 SubThread: 2 MainThread: 5 SubThread: 3 MainThread: 6 SubThread: 4 MainThread: 7 SubThread: 5 MainThread: 8 SubThread: 6 MainThread: 9 SubThread: 7 MainThread: 10 SubThread: 8 MainThread: 11 SubThread: 9 MainThread: 12 SubThread: 10 MainThread: 13 SubThread: 11 MainThread: 14 SubThread: 12 MainThread: 15 SubThread: 13 MainThread: 16 SubThread: 14 MainThread: 17 SubThread: 15 MainThread: 18 SubThread: 16 MainThread: 19 SubThread: 17 MainThread: 20 SubThread: 18 MainThread: 21 SubThread: 19 MainThread: 22 SubThread: 20 MainThread: 23 SubThread: 21 MainThread: 24 SubThread: 22 MainThread: 25 SubThread: 23 MainThread: 26 SubThread: 24 MainThread: 27 SubThread: 25 MainThread: 28 SubThread: 26 MainThread: 29 SubThread: 27 MainThread: 30 SubThread: 28 MainThread: 31 SubThread: 29 MainThread: 32 SubThread: 30 MainThread: 33 SubThread: 31 MainThread: 34 SubThread: 32 MainThread: 35 SubThread: 33 MainThread: 36 SubThread: 34 MainThread: 37 SubThread: 35 MainThread: 38 SubThread: 36 MainThread: 39 SubThread: 37 MainThread: 40 SubThread: 38 MainThread: 41 SubThread: 39 MainThread: 42 SubThread: 40 MainThread: 43 MainThread: 44 SubThread: 41 MainThread: 45 SubThread: 42 MainThread: 46 SubThread: 43 MainThread: 47 SubThread: 44 MainThread: 48 SubThread: 45 MainThread: 49 SubThread: 46 SubThread: 47 SubThread: 48 SubThread: 49 F:\java\Thread>