定义多线程任务
来源:互联网 发布:软件安装文档模板 编辑:程序博客网 时间:2024/06/03 12:51
线程可以驱动任务,因此,我们需要一种描述任务的方式,我们定义多线程任务有两种方式可以实现,一种是继承Thread类,重写run方法,如下所示,我们使用这种方法定义了一个多线程的计数器。
</pre><pre name="code" class="java">
package thread;public class ThreadCreate extends Thread{private static int count=0;private int task;public ThreadCreate(int task){this.task = task;}@Overridepublic void run() {while(count<100){count++;System.out.println(status());}}public String status(){return ""+task+":"+count;}public static void main(String[] args) {ThreadCreate thread = new ThreadCreate(1);thread.run();}}
</pre><pre name="code" class="java">
如代码所示,我们定义了一个计数器的任务,在run方法中进行计数,并且输出当前的执行状态。在主方法中创建了一个线程去执行任务。运行结果如下:
</pre>1:11:21:31:41:51:61:71:81:91:101:111:121:131:141:151:161:171:181:191:201:211:221:231:241:251:261:271:281:291:301:311:321:331:341:351:361:371:381:391:401:411:421:431:441:451:461:471:481:491:501:511:521:531:541:551:561:571:581:591:601:611:621:631:641:651:661:671:681:691:701:711:721:731:741:751:761:771:781:791:801:811:821:831:841:851:861:871:881:891:901:911:921:931:941:951:961:971:981:991:100<p></p><p><span style="white-space:pre"></span></p><p><span style="white-space:pre">我们可以知道,当前只有一个线程在执行计数操作,加上主线程,在我们现在的应用中一共有两个线程在执行。下面我们一起执行多个线程,观察执行结果会有什么变化。为使用多个线程进行计数,我们对主方法进行如下的变动。</span></p><p><span style="white-space:pre"></span></p><pre name="code" class="java">public static void main(String[] args) {for(int i=0;i<10;i++){ThreadCreate thread = new ThreadCreate(i);thread.run();}}
运行,观察结果.我们会发现,多个线程一起交替的执行计数任务。
除了继承Thread类来定义我们的任务之外呢,我们还有另外一种方式可以定义我们的任务,那就是实现Runnable接口。如下所示,我们对上面的计数器换一种方式进行定义。
public class Thread2 implements Runnable {private static int count;@Overridepublic void run() {while(count<100){count++;System.out.println(count);}}public static void main(String[] args) {new Thread(new Thread2()).start();}}
0 0
- 定义多线程任务
- tsm 定义计划任务
- 定义数据挖掘任务
- 快捷的任务定义
- 多任务和多线程
- 多线程 执行 多任务
- 多任务处理:多线程
- 多线程多任务断点续传
- 多线程编程:任务取消
- 多任务 VS 多线程
- 多线程与异步任务
- java多线程定时任务
- 多线程实现多任务
- java多线程处理任务
- 多线程之定时器任务
- 多线程异步任务
- 多线程实现多任务
- 多线程执行定点任务
- 对左值和右值的理解
- 把一个十进制的数转换成为16进制的数
- Android开发,开源项目SlidingMenu的导入
- Rotate Array
- 一年之计在于春-2015年两会-国家总理李克强答记者问
- 定义多线程任务
- 同步传输和异步传输有什么区别?
- UVAL 3486 Cells DFS时间戳
- 测试Service
- 从Free到Page Cache
- 蓝桥杯2015培训笔记(1)
- 蓝桥杯2015培训笔记(2)
- 蓝桥杯2015培训(3)
- Unity3D研究院之解决ttf繁体字体不显示问题