Java并发多线程与高并发(一)-序章
本文最后更新于:2024年4月22日 下午
并发线程体验,概述本系列讲的内容(线程并发安全/高并发解决方案)
初体验
输出结果:
多线程下上述案例没有达到3000这个预期的值
Semaphore 信号量,Java 并发库 的Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可
概念
进程:
进程是程序一次执行过程。比如程序从启动到销毁是一个进程
线程:
线程是比进程更小的单位。一个进程在执行过程中可以产生多个线程
并发与多线程的考虑点:
考虑点在于多线程操作资源时候保证线程安全,保证程序不出现错误
高并发考虑点:
考虑点在于提高服务在处理多个请求时候,我们程序要尽可能的去提升程序性能,保证程序的抗压能力。可以从水平扩展,垂直扩展去实现
线程的状态
- 新建状态(NEW):新建状态,线程被构建,还未调用start()方法
- 可运行状态(RUNNABLE): 线程对象创建后,其他线程(比如 main 线程)调用了该对象 的 start ()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获 取 cpu 的使用权
- 运行状态(RUNNING):可运行状态( runnable )的线程获得了 cpu 时间片( timeslice ) ,执行程序代码
- 阻塞(BLOCK):阻塞状态是指线程因为某种原因放弃了 cpu 使用权,也即让出了 cpu timeslice ,暂时停止运行。直到线程进入可运行( runnable )状态,才有 机会再次获得 cpu timeslice 转到运行( running )状态
- 死亡(DEAD):线程 run ()、 main () 方法执行结束,或者因异常退出了 run ()方法,则该线程结束生命周期。死亡的线程不可再次复生。
Java并发多线程与高并发(一)-序章
https://hyq965672903.gitee.io/posts/fc3007d7.html