现在我有一个函数
比如是fun();
线程形如下:
fun(new Runnable()
{
public void run()
{
System.out.println("here");
}
});
请问当fun()执行的时候,线程会执行???(实际我遇到了这种情况mt.composite.getDisplay().getDefault().syncExec(new Runnable() {
public void run()
{
.... }
});
)
但是线程执行不是要start()方法吗??
如何控制这个线程呢?
比如是fun();
线程形如下:
fun(new Runnable()
{
public void run()
{
System.out.println("here");
}
});
请问当fun()执行的时候,线程会执行???(实际我遇到了这种情况mt.composite.getDisplay().getDefault().syncExec(new Runnable() {
public void run()
{
.... }
});
)
但是线程执行不是要start()方法吗??
如何控制这个线程呢?
我们也知道,一个线程有两种构造方法:
1.使用继承方法:
class TestThread extends Thread{
首先,这是一个匿名内部类的使用方法,所以,在这里调用run方法是肯定能执行的。但是
我们也知道,一个线程有两种构造方法:
1.使用继承方法:
class TestThread extends Thread{
run(){//重写run方法
}
}new TestThread().start();//创建线程,调用start()方法。2.使用实现接口的方法:
class TestThread implements Runnable{
run(){//重写run方法
}
}new Thread(new TestThread).start();注意第二种方法,创建线程需要TestThread类的一个实例作为参数,而且需要new 出一个Thread 的实例出来,而你写的代码可以等价为:
class Test implements Runnable{
run(){
System.out.println(“here”);
}
}fun(new Test());//调用fun();所以,你写的代码和创建一个线程的代码是有本职与别的,你并没有new Thread 出来,所以,这不是线程的创建方法,而是一个普通类的调用发放,只不过是用匿名内部类来实现而已。}