多线程就是指一个应用程序中有多个并发执行的线程,它们对交替执行, 彼此间可以进行通信。在一个操作系统中每一个应用程序J就是一个进程, 也就是“正在运行的程序”在一个进程中可以有多个单元同时运行,这些单元被成为线程。操作系统中的每一个进程中都至少存在一个线程。 当一个Java程序启动时, 就会产生一个进程, 该进程会默认创建一个线程,在这个线程上会运行main() 方法中的代码。
Java提供了两种多线程实现方式, 一种是继承java.lang 包下的Thread 类, 覆写 Thread 类的run() 方法, 在run() 方法中实现运行在线程上的代码; 在Thread 类中,提供了一个 start() 方法用于启动新线程, 线程启动后, 系统会自动调用run() 方法。
另一种是实现java.lang.Runnable 接口, 同样是在run() 方法中实现运行在线程上的代码。
两种实现多线程方式的对比分析:
实现Runnable 接口相对于继承 Thread 类来说,有如下好处:
1、适合多个相同程序代码的线程去处理同一个资源的情况, 把线程同程序代码, 数据有效地分离, 降低了代码的耦合
2、可以避免Java 的单继承带来的局限性。
事实上大多数都是采用实现Runnable接口来实现多线程的创建。