您的位置:首页 > 编程语言 > Java开发

Java:使用匿名内部类在方法内部定义并启动线程

2015-04-12 18:06 633 查看

Java:使用匿名内部类在方法内部定义并启动线程

2008-04-06 11:42:38
标签:Java 线程 休闲 匿名内部类 职场
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/article/4381729.html

下面的代码展示了在一个方法中,通过匿名内部类定义一个Thread,并Override它的run()方法,之后直接启动该线程。
这样的代码可用于在一个类内部通过另起线程来执行一个支线任务,一般这样的任务并不是该类的主要设计内容。
[align=left]package com.zj.concurrency;[/align]
[align=left] [/align]
[align=left]public class StartFromMethod {[/align]
[align=left] private Thread t;[/align]
[align=left] private int number;[/align]
[align=left] private int count = 1;[/align]
[align=left] [/align]
[align=left] public StartFromMethod(int number) {[/align]
[align=left] this.number = number;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] public void runTask() {[/align]
[align=left] if (t == null) {[/align]
[align=left] t = new Thread() {[/align]
[align=left] public void run() {[/align]
[align=left] while (true) {[/align]
[align=left] System.out.println("Thread-" + number + " run " +count[/align]
[align=left] + " time(s)");[/align]
[align=left] if (++count == 3)[/align]
[align=left] return;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] };[/align]
[align=left] t.start();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] public static void main(String[] args) {[/align]
[align=left] for (int i = 0; i < 5; i++)[/align]
[align=left] new StartFromMethod(i).runTask();[/align]
[align=left] }[/align]
[align=left]}[/align]
结果:
[align=left]Thread-0 run 1 time(s)[/align]
[align=left]Thread-0 run 2 time(s)[/align]
[align=left]Thread-1 run 1 time(s)[/align]
[align=left]Thread-1 run 2 time(s)[/align]
[align=left]Thread-2 run 1 time(s)[/align]
[align=left]Thread-2 run 2 time(s)[/align]
[align=left]Thread-3 run 1 time(s)[/align]
[align=left]Thread-3 run 2 time(s)[/align]
[align=left]Thread-4 run 1 time(s)[/align]
Thread-4 run 2 time(s)
本文出自 “子 孑” 博客,请务必保留此出处/article/4381729.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐