进程和线程概念
- 进程: 指在系统中正在运行的一个应用程序; 程序一旦运行就是进程; 进程–资源分配的最小单位。
- 线程: 系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。线程–程序执行的最小单位。
- 线程的状态: (Thread.State)
- NEW (新建)
- RUNNABLE (可运行)
- BLOCKED (被阻塞)
- WAITING (等待: 不见不散)
- TIME_WAITING (等待: 过期不候)
- TERMINATED (终止)
- 关于wait和sleep
- sleep是Thread的静态方法,wait是 Object的方法,任何对象实例都能调用。
- sleep不会释放锁,它也不需要占用锁。wait 会释放锁,但调用它的前提是当前线程占有锁(即代码要在synchronized中)。
- 它们都可以被interrupted方法中断, 并且在哪里睡着就在哪里醒来
与Java的关系
java中专门用于解决线程问题的包java.util.concurrent, 用来实现java并发编程问题
在Java编程中我们主要讨论的是线程而不是进程