线程和进程的区别?
根本区别:进程时操作系统资源分配的基本单元,进程是任务调度和执行的基本单元;
地址空间:同一进程的线程共享本进程的地址空间,而进程之间是独立的地址空间;
关系:一个程序至少一个进程,一个进程至少一个线程。
Thread和Runnable的区别?
1、如果一个类继承Thread,则不适合资源共享,如果实现了Runnable接口,很容易就实现了资源共享;
2、Runnable是接口,Thread是类,且实现了Runnable接口;
3、实现Runnable接口相比继承Thread避免了继承的局限性。
线程池
线程池的工作原理
1、线程池判断核心线程池里的线程是否都在执行任务,如果不是,则创建一个新的工作线程来执行任务,如果核心线程里的线程都在执行任务,则进入下一个阶段;
2、线程池判断工作队列是否已经满,如果工作队列没有满,则将新提交的任务存储在这个工作队列里。如果工作队列满了,则进入下个流程;
3、线程池判断线程池的线程是否都处于工作状态。如果没有,则创建一个新的工作线程来执行任务。如果已经满了,则交给饱和策略来处理这个任务。