JUC并发编程-线程基础知识复习

为什么学多线程

  1. (硬件层面):摩尔定律(元器件数量提高,性能提高)失效,在cpu主频不再提高且核数增多的情况下,想让程序更快就要用到并行或者并发编程。
  2. (软件层面):充分利用多核CPU的性能,提高程序的性能。
  3. (多线程带来的问题):线程安全性问题

Java 多线程的相关概念(1把锁,2个并,3个程)

1把锁

synchronized关键字

2个并

并发(concurrent):宏观上一个CPU同时处理多个任务。实质上同一时刻只能处理一个任务。
并行(parallel):多个CPU同一时刻处理多个任务。

3个程

进程:进程是资源分配的基本单位,也就是每个进程有自己的内存空间和资源。打开任务管理器,一个一个程序就是进程。
线程:线程是轻量级的进程。是CPU执行调度的基本单位。多个线程共享进程的资源。
管程:管城是一种同步机制,用来保证同一时间只有一个线程能够访问到被保护的数据和代码。Monitor管程对象,每个实例对象都有一个Monitor对象也就是锁对象,用来保证同一时刻只能有一个线程访问保护的数据和代码。(锁对象,相当于线程访问的时候门上上一个锁,防止其他线程访问。访问完了后解锁)
Monitor对象会和实例对象一同创建和销毁。

用户线程和守护线程

用户线程:创建一个线程默认就是用户线程。
守护线程:守护线程是一个服务线程,在后台默默为其他线程服务,如果没有要服务的现场,守护线程会结束。通过Thread.isDeamon可以参看是否是守护线程。Thread.setDeamon(true)可以创建守护线程。

你可能感兴趣的:(JUC)