多线程
一. 线程的概念
多线程程序在较低的层次上扩展了多任务的概念:一个程序同时执行多个任务。
每一个任务称为一个线程(thread)
多进程和多线程的区别:本质的区别在于每个进程拥有自己的一整套变量,而线程则共享数据。
1.一个独立的线程中执行一个任务的简单过程:
第一种:
1)将任务代码移到实现了Runnable接口的类的run方法中;
public class TestRunnable implements Runnable{
@Override
public void run() {...}
}
2)创建一个类的对象;
Runnable r = new MyRunnable();
3)由Runnable创建一个Thread对象;
Thread t = new Thread(r);
4)启动线程;
t.start();
注意:调用run()方法只会执行同一个线程池中的任务。应该调用Thread.start()方法,将创建一个执行run方法的新线程。
第二种:
也可以通过构建一个Thread类的子类定义一个线程,然后构造一个子类的对象,并调用start方法。这种方法已经不推荐使用,
原因:应该从运行机制上减少需要并行运行的任务数量。如果有许多任务,可以使用线程池来解决这个问题。