![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
【Java】
文章平均质量分 76
这是一个Java相关的专栏
在此编码着未来
这个作者很懒,什么都没留下…
展开
-
【JUC-悲观锁、乐观锁】
一、概括 优点 乐观锁并未真正加锁,效率高。一旦锁的粒度掌握不好,更新失败的概率就会比较高,容易发生业务失败。 悲观锁依赖数据库锁,效率低。更新失败的概率比较低。 适用场景 乐观锁(多读少写场景) 即冲突真的很少发生的时候,这样可以省去了锁的开销,加大了系统的整个吞吐量。 悲观锁(多写少读场景) 多写的情况,一般会经常产生冲突,这就会导致上层应用会不断的进行retry,这样反倒是降低了性能。 二、悲观锁 基础 总是假设最坏的情况,每次去拿数据的时候原创 2021-12-13 19:10:38 · 406 阅读 · 0 评论 -
【JUC-锁】
一、简介 简介 Java中划分锁的方式不同,就产生了各种对锁的定义。 并发控制 当程序中可能出现并发的情况时,就需要保证在并发情况下数据的准确性,以此确保当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这就叫做并发控制。 并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。 没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。 二、分类 线程是否需要锁住共享的资源 悲观锁-- 锁住(synchronized、lock接口)原创 2021-12-13 19:05:54 · 247 阅读 · 0 评论 -
【JUC-线程池】
一、基础 1.1 简介 作用 限制系统中执行线程的数量 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;否则进入等待队列。 优点 降低资源的消耗 提高响应的速度 方便管理 ..原创 2021-12-12 16:34:45 · 144 阅读 · 0 评论 -
【JUC-实现多线程】
一、基础 1.1 介绍 实现方法 常用的实现多线程的2种方式:Thread和Runnable。 之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程。 1.2Runnable 定义 Runnable是一个接口,该接口中只包含了一个run()方法。它的定义如下: public interface Runnable { public abstract void run(); } 作用 实现多线程。我们可以定义一个类A实.原创 2021-09-19 17:30:02 · 180 阅读 · 0 评论 -
【JUC-简介】
一、线程 1.1 简介 进程 进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。 线程 线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。 一个程序运行后至少有一个进程,一个进程中可以包含多个线程。 多线程 即就是一个程序中有多个线程在同时执行 1.2线程状态 图示 五种状态 新建状态(.原创 2021-09-19 17:13:23 · 125 阅读 · 0 评论 -
【JUC-汇总】
一、基础 1.1 简介 链接 【JUC-简介】一、线程1.1 简介进程进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。线程线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。一个程序运行后至少有一个进程,一个进程中可以包含多个线程。多线程即就是一个程序中有多个线程在同时执行1.2线程状态图示五种状态新建状态(.https://bl原创 2021-09-19 15:57:44 · 94 阅读 · 0 评论