定义
什么是JUC
所谓JUC并发编程, 就是利用到了JDK中以下的三个关于多线程的包进行开发:
简称为 J U C.
一些业务无法通过普通的线程代码完成, 比如基础阶段的 Thread
Runnable : 没有返回值, 效率相较于Callable 相对较低
线程和进程
在操作系统中运行的程序就是进程, 比如QQ, 播放器, 游戏等
一个进程可以有多个线程, 如视频中同时听到声音, 看到图像, 看弹幕等等
需要注意的是, 程序是指令和数据的有序集合, 是一个静态的概念, 执行程序的一次执行过程叫做进程, 这才是动态的概念
通常在一个进程中可以包含若干个线程, 线程是CPU调度和执行的单位
核心概念:
- 在程序执行时, 即使没有创建线程, 后台也会有多个线程, 如主线程, gc线程;
- main()称之为主线程, 为系统的入口, 用于执行整个程序
- 对同一份资源操作时, 会存在资源抢夺的问题, 需要加入并发控制
- 线程会带来额外的开销, 如CPU调度时间, 并发控制开销
java默认有几个线程?
两个: main, GC