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也可以。