1. 什么是进程和线程?有何区别?
进程就是处于运行过程中的程序,并且具有一定的独立功能,是系统资源分配和调度的基本单位。它具有独立性、动态性和并发性。
线程是独立的并发的执行流,是进程的组成部分。一个进程可以有多个线程,一个线程必须有一个父进程。多个线程共享父进程的全部资源。
2. 多线程的优势?
共享内存,并发性能好,效率高。使用简单。
3. 控制线程的方法有哪些?
a. join: 调用线程被阻塞,直到join线程执行完
b. 后台线程(Daemon Thread 守护进程 精灵线程):后台运行的,为其他线程提供服务。setDaemon(true) 主线程默认是前台的。
c. sleep睡眠:让当前线程暂停一段时间,进入阻塞状态。不理优先级。
d. yield让步: 让当前线程暂停一段时间,进入就绪状态。只有优先级相同或更高的线程才会执行。
4. 实现线程同步的方法有哪些?
(安全以效率为代价)
a. 同步代码块 synchronized
b. 同步方法 synchronized