下面的代码展示了
在一个方法中,通过匿名内部类定义一个
Thread
,并
Override
它的
run()
方法,之后直接启动该线程。
这样的代码可用于在一个类内部通过另起线程来执行一个支线任务,一般这样的任务并不是该类的主要设计内容。
package
com.zj.concurrency;
public
class
StartFromMethod {
private
Thread
t
;
private
int
number
;
private
int
count
= 1;
public
StartFromMethod(
int
number) {
this
.
number
= number;
}
public
void
runTask() {
if
(
t
==
null
) {
t
=
new
Thread() {
public
void
run() {
while
(
true
) {
System.
out
.println(
"Thread-"
+
number
+
" run "
+
count
+
" time(s)"
);
if
(++
count
== 3)
return
;
}
}
};
t
.start();
}
}
public
static
void
main(String[] args) {
for
(
int
i = 0; i < 5; i++)
new
StartFromMethod(i).runTask();
}
}
|
结果:
Thread-0 run 1 time(s)
Thread-0 run 2 time(s)
Thread-1 run 1 time(s)
Thread-1 run 2 time(s)
Thread-2 run 1 time(s)
Thread-2 run 2 time(s)
Thread-3 run 1 time(s)
Thread-3 run 2 time(s)
Thread-4 run 1 time(s)
Thread-4 run 2 time(s)
本文转自zhangjunhd51CTO博客,原文链接:http://blog.51cto.com/zhangjunhd/70056,如需转载请自行联系原作者