五种内部类形式将线程隐藏于类中
来源:互联网 发布:windows c 串口编程 编辑:程序博客网 时间:2024/05/13 19:23
1.使用普通内部类继承Thread类
public class ThreadTestOne { private int countDown = 5; private Inner inner; private class Inner extends Thread{ Inner(String name){ super(name); start(); } public void run(){ while(true){ System.out.println(this); if(--countDown == 0) return; try{ sleep(10); }catch(InterruptedException e){ throw new RuntimeException(e); } } } public String toString(){ return "#"+getName()+":"+countDown; } } public ThreadTestOne(String name){ inner = new Inner(name); }}
2.使用匿名内部类构造Thread类,重写run()方法
public class ThreadTestTwo { private int countDown = 5; private Thread t; public ThreadTestTwo(String name){ t = new Thread(name){ public void run(){ while(true){ System.out.println(this); if(--countDown == 0) return; try{ sleep(10); }catch(InterruptedException e){ throw new RuntimeException(e); } } } public String toString(){ return "#"+getName()+":"+countDown; } }; t.start(); }}
3.使用普通内部类实现Runnable类
public class RunnableTestOne { private int countDown = 5; private Inner inner; private class Inner implements Runnable{ Thread t; Inner(String name){ t = new Thread(this,name); t.start(); } public void run(){ while(true){ System.out.println(this); if(--countDown == 0) return; try{ Thread.sleep(10); }catch(InterruptedException e){ throw new RuntimeException(e); } } } public String toString(){ return "#"+Thread.currentThread().getName()+":"+countDown; } } public RunnableTestOne(String name){ inner = new Inner(name); }}
4.使用匿名内部类构造Thread类,参数1构造一个Runnable对象,参数2指明线程名称
public class RunnableTestTwo { private int countDown = 5; private Thread t; public RunnableTestTwo(String name){ t = new Thread(new Runnable(){ public void run(){ while(true){ System.out.println(this); if(--countDown == 0) return; try{ Thread.sleep(10); }catch(InterruptedException e){ throw new RuntimeException(e); } } } public String toString(){ return "#"+Thread.currentThread().getName()+":"+countDown; } },name); t.start(); }}
5.使用局部内部类,即在方法内部构造Thread类,重写run()方法
public class ThreadMethod { private int countDown = 5; private Thread t; private String name; public ThreadMethod(String name){ this.name = name; } public void runThread(){ if(t == null){ t = new Thread(name){ public void run(){ while(true){ System.out.println(this); if(--countDown == 0) return; try{ sleep(10); }catch(InterruptedException e){ throw new RuntimeException(e); } } } public String toString(){ return "#"+getName()+":"+countDown; } }; t.start(); } }}
2 0
- 五种内部类形式将线程隐藏于类中
- 从零开始学Java之五种内部类将线程隐藏类中
- java 内部类来将线程 代码隐藏在类中
- 如何通过使用匿名内部类来将线程代码隐藏在类中
- 使用内部类来将线程隐藏在类中的几种方法
- 用Dreamweaver将数据库中的数据以柱状图的形式动态展示于网页中
- 将Bean类保存在本地,已JSON的形式提交,便于其他页面读取。常用于购物车
- 把代码隐藏于数据中
- 【Android】Manifest中注册以内部类形式存在的Activity
- java开发中/final关键字/多态/抽象类/接口/形式参数与返回值/内部类/匿名内部类知识梳理
- 在Java中内部类的访问形式和内部类的作用分别是什么?
- 将Session值储存于SQLServer中
- 创建一个C++线程类:C++中独立于平台的线程
- java之内部类中启动线程
- 隐藏压缩文件于图片中(简单的文件合并)
- 将文件秘密隐藏在图片中
- 将窗体从alt+tab中隐藏
- 如何将文字隐藏到图片中
- new与delete函数使用方法以及注意事项
- [leetcode] Candy
- 在Win10上使用Visual Studio2015的Android模拟器
- cmake初次使用,和增加gdb支持
- BZOJ 2005 [Noi2010]能量采集 (容斥)
- 五种内部类形式将线程隐藏于类中
- 8大排序算法总结
- POJ 1273 Drainage Ditches 最大流
- R语言系列:datasets(R自带数据包)
- 教你用200行Python代码“换脸”
- CodeVS第二次月赛 B
- HDU 1009.FatMouse' Trade【贪心算法】【8月16】
- 1088. Rational Arithmetic (20) -- 公约数,字符串输出处理
- 机房学习篇——数据Excel导出