![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaEE
文章平均质量分 97
允歆辰丶
一个平平无奇的码农
展开
-
JVM虚拟机
JVM是的简称,意为Java虚拟机。虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。常见的虚拟机:JVMVMwave。JVM 和其他两个虚拟机的区别:VMwave与VirtualBox是通过软件模拟物理CPU的指令集,物理系统中会有很多的寄存器;JVM则是通过软件模拟Java字节码的指令集,JVM中只是主要保留了PC寄存器,其他的寄存器都进行了裁剪。JVM是一台被定制过的现实当中不存在的计算机。原创 2023-10-08 10:34:15 · 1933 阅读 · 17 评论 -
Java之多线程进阶
此时线程1调离CPU,线程2调入CPU,此时线程2工作内存中var5=0(expectValue),进入到CAS操作中,此时将&(var1+var2)=1与var5=0(expectValue)进行对比,发现不相同,返回false,之后重新将主内存中的value值加载到工作内存中,此时var5=1,进入到CAS操作中,此时将&(var1+var2)=1与var5=0(expectValue)进行对比,发现相同,将主内存中的值赋值为swapValue(var5+1=2)返回true,线程2操作结束.原创 2023-05-18 11:54:17 · 3890 阅读 · 58 评论 -
Java之线程池
JDBC编程中,通过DataSource获取Connection就用到了池(数据库连接池)的概念 数据库连接池中有一些已经建立了连接(输入完账号密码的状态)的connection当Java程序需要数据库连接时,只需要从数据库连接池中获取到一个空闲的连接进行使用当Java程序使用完连接之后,就会将当前连接返还给数据库连接池线程池里放的是线程本身,当程序启动时就创建若干个线程,如果有任务就处理,没有任务就阻塞等待.原创 2023-05-14 12:31:00 · 2040 阅读 · 44 评论 -
Java之阻塞队列和消息队列
单例模式是一种设计模式(设计模式:就是在特定的场景下,解决问题最优的方式,类似于棋谱),单例:顾名思义,全局只有一个实例对象和之前学习过的队列一样,也是FIFO(先进先出).入队元素时,先判断队列是否满了,如何满了就阻塞(等待),直到队列中有空余空间再入队.出队元素时,先判断队列是否为空,如果空了就阻塞(等待),直到队列中有元素使再出队实例:包饺子:分为擀饺子皮和包饺子两个操作当放饺子皮的盘子满了,擀饺子皮的人停止擀皮(等待)--入队列操作,等待有空间了再工作。原创 2023-05-12 10:28:18 · 1269 阅读 · 3 评论 -
Java之单例模式
在多线程环境下程序运行的结果与单线程环境下程序运行的结果不一样(不达预期)单例模式是一种设计模式(设计模式:就是在特定的场景下,解决问题最优的方式,类似于棋谱),单例:顾名思义,全局只有一个实例对象。初始状态instance=null,外层if判断为true,进入,此时三个线程参与锁竞争,线程1拿到了锁,线程2和线程3处在堵塞状态,线程1内层if判断为true,执行instance的赋值操作,之后释放锁资源,返回赋值之后的对象,线程2拿到了锁资源,内层if判断为false,释放锁资源,返回instance,原创 2023-05-11 11:17:44 · 1233 阅读 · 25 评论 -
Java之线程安全
线程1获取到锁之后执行了对应的代码,线程2也要执行这个方法,但是检查锁的状态已经被持有,所以它处在堵塞(BLOCK)的状态,当线程1执行完方法之后,线程2才有可能获得到锁(并不一定),因为线程是抢占式执行的,可能线程1再次执行这个方法,再次先获得到了锁.现在举一个形象点的例子,小人1去上厕所,它获取到了锁,进入到上厕所,其他的小人要想上厕所,因为现在已经上了锁,所以他们只能处在等待堵塞的状态,当小人1出来之后,他们又在一起竞争(小人1也参与竞争),竞争到锁的就可以先上厕所,其它的小人又需要等待,原创 2023-05-10 11:05:09 · 4753 阅读 · 40 评论 -
Java之多线程初阶2
发现串行的总耗时比并行的总耗时还要短,因此我们可以大胆推测,并不是所有的场景下多线程的效率都是最高的,当我们的运算量很小的时候,创建线程的时间比代码运行的时间还短,这样子显然是不适合用多线程的.我们之前使用的线程都是前台线程,因为创建线程之后默认都是前台线程,必须手动设置成为后台线程,我们通过 thread.setDaemon(true);后台进程:在一些容错率高的任务,可以采用,如微信的步数计算,并不需要精确计算你精确的步数,不影响主线程的关闭..线程的中断:停止或者中断当前线程的任务.原创 2023-05-06 15:22:20 · 1370 阅读 · 21 评论 -
Java之多线程初阶
指的是一个任务或进程按顺序逐个完成,一个任务完成后,另一个任务才开始执行。例如,一个计算机需要处理多个任务,这个时候串行是一个任务执行完毕之后,才能处理下一个任务.指的是。在中,实现并发需要快速地在之间。例如,一个计算机需要同时运行多个应用程序,每个应用程序都有一个单独的进程,操作系统需要在这些进程之间快速地切换。指的是,每个任务在上。并行需要来同时执行。例如,一个大型计算任务被分成多个子任务,每个子任务分配到不同的处理器或计算机上执行。在计算机领域中,并行和并发的概念通常被用来。原创 2023-05-05 17:43:44 · 901 阅读 · 9 评论