java-Juc并发编程系列(一):线程和进程

第1节:线程和进程


1.理论整理

  1. juc是java.util.concurrent的缩写,也就是并发工具包.;
  2. Runnable没有返回值,效率比Collable要低;
  3. 进程:一个程序,QQ.exe,Music.exe程序集合;
  4. 一个进程往往可以包含多个线程,至少包含一个!
  5. java默认有2个线程:main;GC(垃圾回收)
  6. Java只能通过本地方法去开启线程,java无法直接操作硬件,实际上是调用的底层的C++;
  7. 并发–多线程同时操作同一个资源;
    CPU一核,模拟出多条线程,天下武功,唯快不破,快速交替模拟出的假象;
  8. .并行–多个人一起行走
    CPU多核, 多个线程可以同时执行;线程池
  9. 并发编程的本质:充分利用CPU的资源
  10. 线程有几个状态:新生NEW - 运行RUNNABLE - 阻塞BLOCKED -等待WAITING – 暂时等待TIMED_WAITING --终止TERMINATED
  11. wait和sleep区别:
    (1).来自不同的类: wait–>Object;Sleep–>Thread
    (2)关于锁的释放:wait会释放锁;sleep抱着锁睡觉,不会释放;
    (3)使用范围不同:sleep可以在任何地方睡;wait必须在同步代码块中使用
    (4)是否需要捕获异常:wait不需要(现在也需要了)捕获异常;sleep必须要捕获异常,因为它可能会发生超时等待的情况

2.实践

java-Juc并发编程系列(一):线程和进程


声明:本系列是"狂神说java"教程的个人学习笔记,无意侵权~