javaSE-多线程停止
来源:互联网 发布:寰神结剧情知乎 编辑:程序博客网 时间:2024/05/25 20:00
停止线程
定义循环结束标记
因为线程运行代码一般都是循环,只要控制了循环即可。
使用interrupt(中断)方法。从冻结状态恢复到运行状态 不要根据单词词义想
该方法是结束线程的冻结状态,使线程回到运行状态中来。
注:stop方法已经过时不再使用。
因为线程运行代码一般都是循环,只要控制了循环即可。
使用interrupt(中断)方法。从冻结状态恢复到运行状态 不要根据单词词义想
该方法是结束线程的冻结状态,使线程回到运行状态中来。
注:stop方法已经过时不再使用。
class StopThread implements Runnable{private boolean flag = true;public synchronized void run (){/*线程任务中必然需要定义循环语句。只要定义变量控制住循环。就可以控制线程的结束。*/while(flag){try{wait();//如果线程被等待,是无法继续判断标记的。}catch (InterruptedException e){System.out.println(Thread.currentThread().getName()+".......Exception");flag = false;}System.out.println(Thread.currentThread().getName()+"......run");}}public void setFlag(){flag = false;}}class StopThreadDemo {public static void main(String[] args) {StopThread st = new StopThread();Thread t1 = new Thread(st);Thread t2 = new Thread(st);t1.start();t2.setDaemon(true);//将t2标记成守护线程(后台线程)t2.start();int num = 0;while(true){if(num++ == 50){//st.setFlag();//当条件满足时,将线程任务中的标记改为false。让线程停止。//对t1进行一次中断,意思是将t1的冻结状态清除。让其恢复执行资格。t1.interrupt();//t2.interrupt();break;}System.out.println(Thread.currentThread().getName()+"....."+num);}System.out.println("over");}}
线程类的其他方法
setPriority(int num)设置线程的优先级
setDaemon(boolean b)(用户线程/守护线程)其他类线程结束守护线程自动结束
join()
自定义线程名称
toString()
setDaemon(boolean b)(用户线程/守护线程)其他类线程结束守护线程自动结束
join()
自定义线程名称
toString()
class Demo implements Runnable{private String name;Demo(String name){this.name = name;}public void run(){for(int x=0; x<40; x++){System.out.println(Thread.currentThread().getName()+"...."+x+"...."+name);Thread.yield();}}}class ThreadDemo_Join {public static void main(String[] args) throws Exception{Demo d1 = new Demo("小强");Demo d2 = new Demo("旺财");Thread t1 = new Thread(d1);Thread t2 = new Thread(d2);t1.start();//调用了t1.join();方法。t2.start();t1.join();//主线程等待t1线程终止。/*for(int x=0; x<20; x++){System.out.println("main......"+x);}*/}}
0 0
- javaSE-多线程停止
- javaSE-多线程
- JavaSE 多线程
- JavaSE 多线程
- Javase多线程
- JavaSE 多线程
- JavaSE多线程
- javaSE-多线程间通信
- JAVASE线程---多线程
- 【JavaSE】day13_多线程
- javaSE多线程下载
- [javase]多线程(一)
- [javase]多线程(二)
- [javase]多线程(三)
- JavaSE 多线程 死锁示例
- JavaSE 多线程(1)
- JavaSE 多线程(2)
- javaSE实现多线程下载
- Adobe AIR安装错误解决办法
- SELinux入门:了解和配置SELinux semanage
- 为么使用Redis及其产品定位 —— Redis学习笔记(二)
- 关于CDialog类的OnOK、OnCancel、OnClose和OnDestroy
- 『黑马程序员』---java--面向对象--多态+Object篇
- javaSE-多线程停止
- 对fram,boundls的一些理解(2)
- VS快捷键教程
- LeetCode | Spiral Matrix
- JavaScript中的匿名函数、回调函数、自调用函数
- 表格一条线
- Reverse Integer
- Android 输入表单实例--上下固定,中部滚动布局
- tar.bz2更快编解码方式