黑马程序员技术交流社区
标题:
写的多线程程序,自己解释通了
[打印本页]
作者:
xuehuayous
时间:
2014-4-2 19:59
标题:
写的多线程程序,自己解释通了
本帖最后由 xuehuayous 于 2014-4-6 10:26 编辑
复习多线程的时候,突然想到一种写法,运行结果正确,可是自己解释不通了,求大侠帮忙分析下,谢谢
package com.itheima;
public class Test{
public static void main(String[] args) {
new Thread(new Runnable() {
public void run() {
for(int i=0; i<100; i++) {
System.out.println("new thread------>run" + i);
}
}
}).start();
for(int i=0; i<100; i++)
System.out.println("main------->run" + i);
}
}
复制代码
作者:
osully
时间:
2014-4-2 20:12
什么解释不通,匿名内部类 想不通?
作者:
syusikoku
时间:
2014-4-2 21:05
这个是把线程执行的任务封装到了Runnable对象的run方法中。然后把封装有线程任务的Runnable对象传递给了Thread的构造方法。这样其实是Thread在指挥Runnable对象做事情。这是最接近面向对象的。这也是我们使用的最多的一种。使用这种方式可以实现多个线程共享同一个数据。
作者:
宋超2356
时间:
2014-4-2 21:21
public class Test{
public static void main(String[] args) {
new Thread(new Runnable() { //就是new Thread(里面放入使用Runnable接口的类);
public void run() { //重写里面的run放法
for(int i=0; i<100; i++) {
System.out.println("new thread------>run" + i);
}
}
}).start(); //这里就是Thread.start();
for(int i=0; i<100; i++)
System.out.println("main------->run" + i);
}
}
复制代码
其实就是这个的匿名类写法:
public class Test implements Runnable {
public static void main(String[] args) {
Test td1 = new Test();
Thread t1 = new Thread(td1);
t1.start();
for(int i=0; i<100; i++)
System.out.println("main------->run" + i);
}
public void run() {
for(int i=0; i<100; i++) {
System.out.println("new thread------>run" + i);
}
}
}
复制代码
作者:
╰青青子佩ˊゝ
时间:
2014-4-2 21:35
在实现接口时都可以这样用匿名内部类啊。
作者:
adamjy
时间:
2014-4-2 21:44
匿名内部类Runnable传递给Thread构造方法,new出的线程和主线程交替运行,什么叫解释不通??
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2