进程与线程

线程状态

  1. NEW
  2. RUNNABLE
  3. BLOCKED
  4. WAITING
  5. TIMED_WAITIING
  6. TERMINATED

    WAIT和SLEEP

  7. sleep不会释放锁,wait会释放锁

  8. 两个方法都会被interrupted中断

    并发和并行

  9. 并行,与之相对的是串行,多项工作一起执行(同一时刻的执行)

  10. 并发:多线程访问统一资源,常听到电商秒杀中的高并发,但实际上某一时刻只有一个线程能拥有资源。

    管程(Monitor)

    monitor——监视器(含有锁的意思),是一种同步机制,保证同一时刻,只能有一个线程访问被保护的数据。

JVM中的同步基于进入和退出,使用管程对象实现的,也就是说管程是对临界区资源加锁的工作。

用户线程和守护线程

  1. 用户线程:自定义线程
  2. 守护线程:运行在后台的特殊线程,比如垃圾回收线程

主线程结束,但是用户线程仍在执行,那么程序不会结束
主线程结束,守护线程没有结束,那么程序不会管守护线程

  1. thread.setDaemon(true);// 设为守护线程
  2. threan.start();