线程停止与守护进程--072
来源:互联网 发布:淘宝形象模特 编辑:程序博客网 时间:2024/05/01 16:47
package cn.itcast.thread;/* 线程的停止: 1. 停止一个线程 我们一般都会通过一个变量去控制的。 2. 如果需要停止一个处于等待状态下的线程,那么我们需要通过变量配合notify方法或者interrupt()来使用。 */public class Demo6 extends Thread {boolean flag = true;public Demo6(String name){super(name);}@Overridepublic synchronized void run() {int i = 0 ;while(flag){try {this.wait(); //狗娃等待..} catch (InterruptedException e) {System.out.println("接收到了异常了....");}System.out.println(Thread.currentThread().getName()+":"+i);i++;}}public static void main(String[] args) {Demo6 d = new Demo6("狗娃");d.setPriority(10);d.start();for(int i = 0 ; i<100 ; i++){System.out.println(Thread.currentThread().getName()+":"+i);//当主线程的i是80的时候停止狗娃线程。//d.interrupt(); // interrupt()根本就是无法停止一个线程。if(i==80){d.flag = false;d.interrupt(); //把线程的等待状态强制清除,被清除状态的线程会接收到一个InterruptedException。 /*synchronized (d) {d.notify();}*/}}}}
package cn.itcast.thread;/* 守护线程(后台线程):在一个进程中如果只剩下 了守护线程,那么守护线程也会死亡,主线程结束,则守护线程也结束 需求: 模拟QQ下载更新包。 一个线程默认都不是守护线程。 */public class Demo7 extends Thread {public Demo7(String name){super(name);}@Overridepublic void run() {for(int i = 1 ; i<=100 ; i++){System.out.println("更新包目前下载"+i+"%");if(i==100){System.out.println("更新包下载完毕,准备安装..");}try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}}}public static void main(String[] args) { Demo7 d = new Demo7("后台线程"); d.setDaemon(true); //setDaemon() 设置线程是否为守护线程,true为守护线程, false为非守护线程。// System.out.println("是守护线程吗?"+ d.isDaemon()); //判断线程是否为守护线程。 d.start(); for(int i = 1 ; i<=100 ; i++){ System.out.println(Thread.currentThread().getName()+":"+i); } }}
阅读全文
0 0
- 线程停止与守护进程--072
- mac守护进程启动与停止
- 07_多线程停止与守护线程
- 启动停止守护进程
- 线程的停止,守护进程,Join方法问题
- 守护线程、守护进程
- 守护进程与线程互斥
- 守护进程与java中的守护线程使用
- 守护进程和守护线程
- 守护进程和守护线程
- 守护进程和守护线程
- 守护进程和守护线程
- 线程之间通信、停止线程、守护线程
- 36.黑马程序员-停止线程、守护线程
- 线程的停止、守护线程、join()方法
- 15.停止线程 守护线程 join() yield()
- Android 进程与线程基础知识 及 如何停止进程
- python基础-守护进程、守护线程、守护非守护并行
- 傅里叶变换
- Linux_Zookeeper 安装笔记
- IOS端K线系列之K线-绘制OHLC图、线段、圆形
- 581. Shortest Unsorted Continuous Subarray
- SharedPreferences存储
- 线程停止与守护进程--072
- 几个简单步骤可以提高网站浏览体验
- error: file '/boot/grub/i386-pc/normal.mod' not found解决办法
- 关于vc++6.0如何使用zlib.lib的问题解决
- jstree使用总结
- PartitionedPairBuffer
- 编译错误:ltdl.h: no such file
- 第11章 函数
- Flexbox完美解决CSS垂直居中