黑马程序员技术交流社区

标题: 请问线程方面的... [打印本页]

作者: mf152    时间: 2013-9-10 01:04
标题: 请问线程方面的...
runonUiThread(new Runnable){
        Public void run(){
                mTextView.setText(result);
}
};

为什么不能直接

runonUiThread(
       
                mTextView.setText(result);

};呢?



作者: 杨成    时间: 2013-9-10 03:09
开启线程是new Thread().start()方法,这个start会去执行继承Thread类中的run()方法,而你采用匿名内部类的话,必须覆写这个run方法,否则你怎么通过start方法调用run方法中的内容呢?
作者: 杨伟斌    时间: 2013-9-10 07:02
写线程的目的是为了让自己的一部分代码能够与有些代码参与同时运行,这些代码就是线程的任务,而线程的任务必须定义在run()方法中,这样只有调用start()方法后才可以运行自己的任务。start方法一方面是开启线程,另一方面调用run()方法,如果run方法都没有,我们怎么封装自己的任务呢。
作者: 陶智第    时间: 2013-9-10 08:23
第一:run()方法用于存放线程所执行的代码
第二:结合此题,只有覆盖Runnable接口中的run()方法,才能调用底层的start()方法去开启线程
作者: 杨增坤    时间: 2013-9-10 08:41
首先我说一下run()和start()的区别:
如果直接调用run()方法的话,那么就是像调用普通的方法一样,但是不如果调用的是start()方法的话,那么他会启动一个线程,然后自动调用run()方法,然后和其他线程抢占资源,

run()是Runnable接口中的一个方法,子类必须覆盖,然后才有资格启动一个线程,也就是他是启动线程必备的一个条件。

希望对你有帮助!

作者: mf152    时间: 2013-9-12 02:12
我们平常开启一个子线程不是有继承thread 和new  runnable 这两种方法吗。这里的new  runnable  为啥还要开启一个线程?


runonUiThread(//这里是子线程
new Runnable){//有啥作用
        Public void run(){
                mTextView.setText(result);
}
};

画线的部分去掉后 ,为什么不可以呢

3Q  






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2