Java并发编程
介绍
Java并发编程,每个Java开发人员必须掌握的知识点,同时也是Java开发中的难点。本博客分几个章节,包括从线程基础到进阶的线程协作通信、并发工具类再到高级的线程安全、显示锁和CAS、线程池、并发容器和最后的实战项目。旨在通过这门课程让大家深入浅出和系统地学好并发编程,用好Java下的并发,对JDK中并发的内部机制实现有一定程度的了解。
注意
有的知识点讲解的不清楚或者有错误的地方请指正,共同学习进步。
适合人群
适合具有一定Java基础的人群。
计算机操作系统
CPU核心数和线程数的关系:我们在购买电脑的时候,总会在意CPU的核心数,一般来说,CPU的核心数越多,电脑性能就会越好,但是这只是一个因素。早期的都是单核单线程,后期引入超线程概念,单核双线程,比如2核4线程,4核8线程等。计算机的性能是越来越好,越来越快,怎么应用多线程,合理利用资源成了重点。
CPU时间片轮转机制:操作系统有一个上下文切换的概念,学过操作系统的朋友都知道,一旦分配的时间到了,就会执行切换动作,对于没有做完的操作会保留数据。等待时间到了继续执行。
进程和线程:进程是资源分配的最小单位。操作系统运行都是以进程为单位执行。线程是CPU调度的最小单位,共享进程中的资源,必须依附于进程。
并行和并发:举个例子,高速公路上有6条出口,那么同时并行的量就是6,这就是并行,并发是有一个时间的概念,其中一条出口,车子在单位时间里通过的数量叫并发,离开时间谈并发是没有意义的。
高并发编程的意义、好处和注意事项
1、充分利用cpu的资源
2、加快用户响应的时间
3、模块化、异步化