java多线程(1)创建线程
java多线程(一)创建线程
说到线程,常常拿来和进程相比,我感觉这两者完全没有比较的地方啊,线程是进程内部的一条小蛔虫,想让你活着你就不会死。
java是一门面向对象的语言,按照面向对象的思维。就把线程也封装成为了对象,这样对我们程序员来说就是简单方便,透明。在java中创建对象的方式有两种。第一种继承线程类Thread重新run方法。
new Thread(){ public void run() { //线程要执行的代码 }; }.start();
第二种方式实现Runnable接口重写run方法。
new Thread(new Runnable() { @Override public void run() { /线程要执行的代码 } }).start();
线程类有个构造方法传递一个Runnale接口对象,看Thread的run方法源码就很容易理解了
public Thread(Runnable target) { init(null, target, "Thread-" + nextThreadNum(), 0); }
在调用start方法适合会启动一个新线程并且调用的是Thread中的run方法。看Thread中run方法的实现。
@Override public void run() { if (target != null) { target.run(); } }
在调用run方法时候会判断是否传入了Runnable接口的实例,如果有便会执行我们书写的代码。
网上有很多人讨论到底哪种方式跟好一些。我个人认为Runnable接口方式更适合我的思维,很符合面向对象的思维,把需要执行的任务封装为一个对象,再去执行。当然继承Thread也可以。