import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class ThreadWRDemo {
public static void main(String[] args) throws IOException {
final List<String> list = new ArrayList<String>();
final Scanner s = new Scanner(System.in);
final PrintWriter writer =new PrintWriter(new FileOutputStream("ThreadWrite.txt"));
final Thread wthread = new Thread() {
public void run() {
while (true) {
if (list.isEmpty()) {
try {
writer.flush();
Thread.sleep(10000);
} catch (InterruptedException e) {
System.out.println("结束了!!");
}
continue;
}
String first = list.remove(0);
writer.println(first);
}
}
};
wthread.setDaemon(true);
final Thread rthread = new Thread() {
public void run() {
while (true) {
String str = s.nextLine();
list.add(str);
if (str.equalsIgnoreCase("Q")) {
wthread.interrupt();
break;
}
}
}
};
wthread.start();
rthread.start();
}
}
为什么在rthread 线程结束后wthread 还可以运行写入操作?
而且wthread.interrupt()操作是唤醒并运行wthread 线程还是先执行完rthread 线程后在运行?????
解决方案 »
- 初学者关于内部类的问题??
- 一个return的小问题,求大牛
- 提示149行非法表达的开始,帮忙看下。。。
- 面试编程求解
- "2005-10-11" 如何转换成 Date 类型? StringBuffer 和 String类的区别在哪?
- 请问怎么样才能通过IO获得一个网站上某个网页的代码?
- 如何在linux下使用java获得本机IP?
- jPopupMenu 疑问,高手请进
- linux 下的 JDK???
- 不明白JComboBox这样做的原因?
- 【面试题】连接池的优点和缺点是什么,其基本原理是什么
- com.sun.jdi.VMDisconnectedException: Got IOException from Virtual Machine occurr
我想问哈 为什么rthead前台线程退出时 wthread没有立即退出???
结束了!!
wthread.start();
rthread.start();其实这两个是线程刚刚启动,会调用各种的run方法,然后不断地进行循环。直到输入Q为止。至于第二个问题:wthread.interrupt()操作是唤醒并运行wthread 线程还是先执行完rthread 线程后在运行?????这个和操作系统的中断机制有关,我也不清楚。