1. 什么是基于进程的多任务(多进程)?
每一个进程拥有自己的内存空间。
进程是重量型的;进程间通信花费大;进程转换需要保存和加载寄存器、内存映射、更新列表等。
2. 如何创建线程?
有两种方式创建线程:扩展Thread类、实现Runnable接口。
扩展Thread类:
class Multi extends Thread {
public void run() {
System.out.println("thread is running ...");
}
public static void main(String[] args) {
Multi t1 = new Multi();
t1.start();
}
}
实现Runnable接口:
class Multi3 implements Runnable {
public void run() {
System.out.println("thread is running... ");
}
public static void main(String[] args) {
Multi3 m1 = new Mult3();
Thread t1 = new Thread(m1);
t1.start();
}
}
3. 可以启动一个线程两次吗?
不能。如果再次启动,会抛出IllegalThreadStateException异常。
4. 什么是多任务?
多任务是指一个过程模拟执行多个任务。使用多任务可以最大化利用CPU。多任务可以通过两种方式实现:
基于进程的多任务(多进程)、基于线程的多任务(多线程)
5. 线程的生命周期?
线程的生命周期由JVM控制,线程状态有:新建、就绪、运行、阻塞、终止。
新建状态:创建一个线程,在启动start()方法前的状态。
就绪状态:调用start()方法后,还没有被线程调度器选中时的状态。
运行状态:被线程调度器选中后的运行状态。
阻塞状态:线程还存活,但当前不适合运行的状态。
终止状态:当run()方法退出后的状态。
6. 什么是基于线程的多任务(多线程)?
线程共享相同的地址空间。
线程是轻量级的;
线程间通信花费小;
注:一个线程至少需要一个进程。
7. 什么是线程和多线程?
多线程是一个过程同时执行多个线程。一个线程是一个轻量级的子进程,一个最小的处理单元,线程共享进程的内存空间。