线程理解4
来源:互联网 发布:linux mint18版本区别 编辑:程序博客网 时间:2024/05/17 07:28
/*
时间: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
*/
0 0
- 线程理解4
- 线程理解
- 线程理解
- 理解进程和线程
- 理解线程同步
- 对线程的理解
- 线程池理解
- 线程中的Semaphore理解
- java线程安全理解
- java线程理解
- 线程生活例子理解
- 线程池理解
- 浅谈线程的理解
- 理解进程和线程
- java线程安全理解
- java基础 线程理解
- java线程安全理解
- 线程的举例理解
- 物联12:rfid超高频和微波天线技术
- C进阶指南(2):数组和指针、打桩
- 【日常学习】【指针二叉树+BFS】Uva - 122 Trees on the level题解
- apcu的配置与之前的apc的对比
- C进阶指南(3):显式内联、矢量扩展、C的逸闻轶事
- 线程理解4
- 字符集和字符编码
- 真正的云主机到底是什么样的?<<转发>>
- B\S备忘录08——工作流
- Linux内核分析课程2_操作系统是如何工作的
- urllib与urllib2的区别
- 条款13 以对象管理资源
- JVM 栈介绍
- MFC控件坐标位置