进程与线程
线程状态
- NEW
- RUNNABLE
- BLOCKED
- WAITING
- TIMED_WAITIING
-
WAIT和SLEEP
sleep不会释放锁,wait会释放锁
-
并发和并行
并行,与之相对的是串行,多项工作一起执行(同一时刻的执行)
- 并发:多线程访问统一资源,常听到电商秒杀中的高并发,但实际上某一时刻只有一个线程能拥有资源。
管程(Monitor)
monitor——监视器(含有锁的意思),是一种同步机制,保证同一时刻,只能有一个线程访问被保护的数据。
JVM中的同步基于进入和退出,使用管程对象实现的,也就是说管程是对临界区资源加锁的工作。
用户线程和守护线程
- 用户线程:自定义线程
- 守护线程:运行在后台的特殊线程,比如垃圾回收线程
主线程结束,但是用户线程仍在执行,那么程序不会结束
主线程结束,守护线程没有结束,那么程序不会管守护线程
thread.setDaemon(true);// 设为守护线程threan.start();
