多线程与多进程
多进程可以理解为多任务的一种实现:在同一时刻运行多个程序的能力。
多线程则在较低的层次扩展了该概念:一个程序同时执行多个任务。
多线程和多进程的区别:本质的区别是,每个进程拥有自己的一整套变量,而线程则是共享变量。多线程的方式带来了风险,但是线程间通信比进程间通信更有效,更容易,并且创建线程的开销比创建进程的开销小得多。
定义线程的方式:
- 声明Runnable函数式接口实例,并使用该实例创建一个Thread对象(推荐,运行机制和运行内容解耦)
Runnable r = () -> {
// do something...
};
Thread t = new Thread(r);
t.start();
- 通过实现一个Thread类的子类
class myThread extends Thread {
public void run() {
// do something...
}
}