1.进程和线程
进程 独立的运行环境 一个程序或一个应用;线程 进程中执行的一个任务 可以共享进程中的资源
2.多线程编程的好处
多个线程并发执行提高程序的执行效率
3.用户线程和守护线程
java程序中创建一个线程,即为用户线程;守护线程在后台执行不会阻止jvm终止,守护线程创建的子线程依然是守护线程
4.如何创建一个线程
继承Thread,实现Runnable接口
5.有哪些不同放入线程生命周期
start--->Runnable,线程调度器分配cpu--->Running
6.可以直接调用run方法么
直接调用run()行为就和普通方法无异,所以要在新的线程中执行我们的代码还得调用start()
7.如何让正在运行的线程暂停?
Thread.sleep(),此方法只能让线程暂停,不会终止线程,一旦从休眠中唤醒线程,其状态会变为Runnable,且根据线程调度会得到执行
8.线程调度器和时间分片
线程调度器,操作系统服务,负责为Runnable状态的线程分配cpu时间,一旦我们创建一个线程并启动它,便依赖于线程调度器的实现
9.java Timer
java.util.timer 是一个工具类,安排一个线程在未来的特定时间执行,可以用来安排一次性任务或者周期性任务
java.util.timerTask实现了Runnable接口的抽象类,需要去继承这个类来创建自己的定时任务并使用Timer去安排执行
10.什么是线程池,如何创建一个java线程池?
一个线程池管理了一组工作线程,同时包括了一个用于放置等待执行任务的队列
Executor用来创建一个线程池