线程,在平时编程中是经常用到的,例如:多线程下载,Android请求网络等等。。。
线程实现的两种方式:继承Thread或者实现Runnable接口。
先来说说步骤:
继承Thread的步骤:
1,定义一个线程类,使其继承自Thread类。
2,复写Thread类中的run()方法。
3,调用线程的start()方法。
实现Runnable接口的步骤:
1,实现Runnable接口
2,覆盖run()方法
3,通过Thread类来建立线程对象
4,调用Runnable接口的子类对象作为实际参数传递给Thread类的构造函数
5,调用Thread的start()方法。
看见没有,上面两种线程的实现方式在最后调用的时候都有个共同点,就是调用其start()方法。start()方法很简单,启动线程,实际上是调用线程中的run()方法。
然后来看看这两种方式分别是怎么写的?
继承Thread
已经写好了,看一下怎么用?
用就比较简单了,直接new一个线程的对象,然后调用它的start();即可
也可以使用方式二,这两种没什么多大的区别。
实现Runnable接口
一个已经实现了Runnable接口的RunnableExample类。
使用:直接new一个Thread,里面传入一个匿名的已经实现了Runnable接口的类的对象,然后调用start();
其实也可以这样做:
这样是不是更直接。嘿嘿。。。
最后来看看两种实现方式的区别:
1,java和C++有一点不同的是:java是单继承的,而C++是多继承的。所以,继承了一个类后就不能继承其他类了,而接口是可以一次实现多个。
所以:实现Runnable接口可以有效的避免单继承的局限性
2,实现Runnable接口的方式有利于代码的健壮性,代码可以被多个线程共享,代码和数据是独立的。
线程的基本使用先说到这里。。。
线程篇: