JUC就是java.util.concurrent工具包的简称。这是一个处理线程的工具包。提供了许多在并发编程工程中常用的工具类,用于定义类似于线程的自定义子系统,包括线程池、异步IO、轻量级框架、还提供了多线程上下文的Collectiion的实现。
wati和sleep的区别
1.sleep是thread的静态方法,wait是object的方法,任何对象实例都能调用
2.sleep不会释放锁,他也不需要占用锁。wait会释放锁,但调用它的前提就是当前线程占有锁。
3.他们都可以被interrupted方法中断
并发和并行
并发:同一个时刻多个线程在访问同一个资源,多个线程对一个点
并行:多项工作一起执行,之后再汇总。
用户线程和守护线程
用户线程:自定义线程。主线程结束了,用户线程还在运行,jvm依旧会执行
守护线程:后台运行线程。没有用户线程,jvm便会结束。
守护线程是依赖于用户线程,用户线程退出了,守护线程也就会退出,典型的守护线程如垃圾回收线程。
用户线程是独立存在的,不会因为其他用户线程退出而退出。