2、内容
2.1、多线程的基本概念
串行:一个一个执行
同步:一个一个执行
异步:一起执行,抢占CPU资源去执行,谁快谁执行
线程指进程中的一个执行场景,也就是执行流程,那么进程和线程有什么区别呢?
-
- 每个进程是一个应用程序,都有独立的内存空间
- 同一个进程中的线程共享其进程中的内存和资源
(共享的内存是堆内存和方法区内存,栈内存不共享,每个线程有自己的。)
计算机引入多进程的目的是为了提高CPU的使用率。
进程中又引入了多线程的目的是为了提高进程的使用率。
一个应用程序启动,就会启动一个进程。进程和进程之间内存独立。
一个进程可以启动多个线程,线程和线程之间堆内存和方法区内存共享,栈内存独立。
巧妙之处:计算机的处理速度超过了人类的感知。
Java程序是如何运行的?
Java命令可以启动java虚拟机,启动JVM就等于在计算机中启动了一个进程。
进程启动之后会启动一个“主线程”去执行main方法。所以main方法在主线程中运行。
2.1.1、Java队列、队列数据结构Queue
PriorityQueue
ArrayDeque
BlockingQueue
Deque
LinkedBlockingDeque