-
线程和进程的区别
线程时进程的一个执行单元,是进程里的调度执行实体
- 进程是一个执行中的“程序”,是系统进行资源分配和调度的一个独立单位,运行一个应用就会至少开启一个进程;
- 线程是一个实体,一个进程拥有多个线程,线程之间共享进程的资源。例如每个请求到达controller,就会开启一个线程;
-
为什么要用多线程
- 线程的划分尺度小于进程,这使得多线程程序的并发性更高;
- 多个线程可共享一个进程的所有资源,共享内存;
- 多线程能够带来更好地性能和用户体验;
-
线程都有哪些状态
新建状态、就绪状态、运行状态、阻塞状态、死亡状态
新建状态: new一个线程;
就绪状态:线程调用start()方法,此时为就绪状态,并不一定能开始运行,进程分配除cpu以外的资源;
运行状态:线程获得了cpu开始执行run()方法;
阻塞状态:wait中等待锁或被阻塞;
死亡状态:stop()或interrupt()方法;
-
run()方法和start()方法的区别
调用run()方法会在当前线程执行run()方法里面的内容;调用start()方法会开启一个新线程执行run()方法里面的内容;