什么是JUC
是包名的缩写,Java.concurrent.util,
JUC出现的原因
首先底层是硬件(包括磁盘、CPU等),驱动程序来操作硬件,操作系统来控制驱动程序,而操作系统又属于服务器,会提供相应的rest API,不论是http还是rpc,所以操作系统会对外提供一个接口层,再由应用程序来应用操作系统,应用程序中包含了各种语言(C、C++、Java)。由于操作系统提供了接口层,接口层可以通过上层的应用程序来调用,如果说操作系统变了,接口层也得跟着变,这个时候需要一个抽象层,来代替用户完成对接口的调用,并且提供一些简单的功能,所以我们称这个库为C的运行时库,叫crt(C Run Time),java的底层是由C++来开发的,Java的JVM是由C++来写的。按进阶的思路来讲是Java调C++,C++调Glibc。
每个语言都会提供一些库函数(C、go等),这些库函数可以完成一些数据结构相关的、多线程相关的,java里面提供集合也就是集合框架结构的包,也就是Connection子类和Map子类,对于线程的实现也提供了Thread类,对于多线程的支撑缺少了线程的同步结构锁,比如说阻塞队列、原子类等,这个时候就可以推出JUC出现的原因:为Java语言提供多线程同步结构的支撑。
JUC解决了什么问题
用于解决多线程同步问题,给Java开发者提供便利的函数和功能、结构。
JUC包含了哪些内容
原子类、锁类、工具类(线程同步结构、线程池等)