/*
时间:2015年3月11日21:06:47
stop()声明如下;
@Deprecated
public final void stop()
已经过时,强迫线程停止执行。该方法具有固有的不安全性。因为是强制执行,所以可能会导致数据不一致,比如说线程中
打开了文件,来不及关闭线程就会停止了。
创建线程的另一种方式是声明实现Runnable接口的类。该类然后实现run方法,然后可以分配该类的实例,在创建Thread时,该对象作为参数传递并启动。
该方式的风格如下:
时间:2015年3月11日21:06:47
stop()声明如下;
@Deprecated
public final void stop()
已经过时,强迫线程停止执行。该方法具有固有的不安全性。因为是强制执行,所以可能会导致数据不一致,比如说线程中
打开了文件,来不及关闭线程就会停止了。
创建线程的另一种方式是声明实现Runnable接口的类。该类然后实现run方法,然后可以分配该类的实例,在创建Thread时,该对象作为参数传递并启动。
该方式的风格如下:
class PrimeThread extends Thread {
long minPrime;
PrimeRun(long minPrime) {
this.minPrime = minPrime;
}
public void run() {
// compute primes larger than minPrime
. . .
}
}
--------------------------------------------------------------------------------
long minPrime;
PrimeRun(long minPrime) {
this.minPrime = minPrime;
}
public void run() {
// compute primes larger than minPrime
. . .
}
}
--------------------------------------------------------------------------------
然后,下列代码会创建并启动一个线程:
PrimeRun p = new PrimeRun(143);
new Thread(p).start();
Thread的构造方法声明如下:
Thread()
分配新的 Thread 对象。
Thread(Runnable target)
分配新的 Thread 对象。
Thread(Runnable target, String name)
分配新的 Thread 对象。
Thread(String name)
分配新的 Thread 对象。
PrimeRun p = new PrimeRun(143);
new Thread(p).start();
Thread的构造方法声明如下:
Thread()
分配新的 Thread 对象。
Thread(Runnable target)
分配新的 Thread 对象。
Thread(Runnable target, String name)
分配新的 Thread 对象。
Thread(String name)
分配新的 Thread 对象。
*/
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<15; i++) {
System.out.println("in Thread Main " + i);
}
System.out.println("Main Thread is over !!!");
//不建议使用
//t.stop();
//而是这样
t.shutDown();
}
}
class Runner4 implements Runnable {
int i = 0;
boolean flag = true;
public void run() {
while(flage == true) {
System.out.println("i " + i++);
}
}
int i = 0;
boolean flag = true;
public void run() {
while(flage == true) {
System.out.println("i " + i++);
}
}
public void shutDown() {
flag = false;
}
}
/*
D:\java\thread>javac TestThread4.java
注: TestThread4.java使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重
D:\java\thread>javac TestThread4.java
注: TestThread4.java使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重
D:\java\thread>java TestThread4
in Thread Main 0
i 0
in Thread Main 1
i 1
in Thread Main 2
i 2
in Thread Main 3
i 3
in Thread Main 4
i 4
in Thread Main 5
i 5
in Thread Main 6
i 6
in Thread Main 7
i 7
in Thread Main 8
i 8
in Thread Main 9
i 9
in Thread Main 10
i 10
in Thread Main 11
i 11
in Thread Main 12
i 12
in Thread Main 13
i 13
in Thread Main 14
i 14
Main Thread is over !!!
i 15
*/
in Thread Main 0
i 0
in Thread Main 1
i 1
in Thread Main 2
i 2
in Thread Main 3
i 3
in Thread Main 4
i 4
in Thread Main 5
i 5
in Thread Main 6
i 6
in Thread Main 7
i 7
in Thread Main 8
i 8
in Thread Main 9
i 9
in Thread Main 10
i 10
in Thread Main 11
i 11
in Thread Main 12
i 12
in Thread Main 13
i 13
in Thread Main 14
i 14
Main Thread is over !!!
i 15
*/