
后端
小小荧
这个作者很懒,什么都没留下…
展开
-
浏览器端存储技术
浏览器端存储技术CookieCookie 是指存储在用户本地终端上的数据,同时它是与具体的 Web 页面或者站点相关的。Cookie 数据会自动在 Web 浏览器和 Web 服务器之间传输,也就是说 HTTP 请求发送时,会把保存在该请求域名下的所有 Cookie 值发送给 Web 服务器,因此服务器端脚本是可以读、写存储在客户端的 Cookie 的操作。LocalStorage在 HTM...原创 2020-05-07 21:42:23 · 164 阅读 · 0 评论 -
创建线程的方式及实现
继承 Thread 类创建线程类定义 Thread 类的子类,并重写该类的 run 方法,该 run 方法的方法体就代表了线程要完成的任务。因此把 run() 方法称为执行体。创建 Thread 子类的实例,即创建了线程对象。调用线程对象的 start() 方法来启动该线程。通过 Runnable 接口创建线程类定义 Runnable 接口的实现类,并重写该接口的 run() 方法...原创 2020-04-27 10:53:05 · 130 阅读 · 0 评论 -
sleep()、join()、yield()有什么区别
sleep()、join()、yield()有什么区别sleep()sleep() 方法需要指定等待的时间,它可以让当前正在执行的线程在指定的时间内暂停执行,进入阻塞状态,该方法既可以让其他同优先级或者高优先级的线程得到执行的机会,也可以让低优先级的线程得到执行机会。但是 sleep() 方法不会释放“锁标志”,也就是说如果有 synchronized 同步块,其他线程仍然不能访问共享数据。...原创 2020-04-27 10:52:36 · 227 阅读 · 0 评论 -
线程池的几种方式与使用场景
线程池的几种方式与使用场景在 Executors 类里面提供了一些静态工厂,生成一些常用的线程池。newFixedThreadPool:创建固定大小的线程池。线程池的大小一旦达到最大值就会保持不变,如果某个线程因为执行异常而结束,那么线程池会补充一个新线程。newCachedThreadPool:创建一个可缓存的线程池。如果线程池的大小超过了处理任务所需要的线程,那么就会回收部分空闲(60...原创 2020-04-27 10:51:28 · 867 阅读 · 0 评论 -
说说线程安全问题
说说线程安全问题线程安全是多线程领域的问题,线程安全可以简单理解为一个方法或者一个实例可以在多线程环境中使用而不会出现问题。在 Java 多线程编程当中,提供了多种实现 Java 线程安全的方式:最简单的方式,使用 Synchronization 关键字使用 java.util.concurrent.atomic 包中的原子类,例如 AtomicInteger使用 java.util....原创 2020-04-27 10:50:41 · 295 阅读 · 0 评论 -
synchronized 与 lock 的区别
synchronized 与 lock 的区别synchronized 和 lock 的用法区别synchronized(隐式锁):在需要同步的对象中加入此控制,synchronized 可以加在方法上,也可以加在特定代码块中,括号中表示需要锁的对象。lock(显示锁):需要显示指定起始位置和终止位置。一般使用 ReentrantLock 类做为锁,多个线程中必须要使用一个 Reent...原创 2020-04-27 10:49:51 · 148 阅读 · 0 评论 -
ABA问题
ABA 问题CAS 会导致“ABA问题”。CAS 算法实现一个重要前提需要取出内存中某时刻的数据,而在下时刻比较并替换,那么在这个时间差类会导致数据的变化。比如说一个线程 one 从内存位置 V 中取出 A,这时候另一个线程 two 也从内存中取出 A,并且 two 进行了一些操作变成了 B,然后 two 又将 V 位置的数据变成 A,这时候线程 one 进行 CAS 操作发现内存中仍然是 ...原创 2020-04-27 10:49:20 · 122 阅读 · 0 评论 -
乐观锁的业务场景及实现方式
乐观锁(Optimistic Lock):每次获取数据的时候,都不会担心数据被修改,所以每次获取数据的时候都不会进行加锁,但是在更新数据的时候需要判断该数据是否被别人修改过。如果数据被其他线程修改,则不进行数据更新,如果数据没有被其他线程修改,则进行数据更新。由于数据没有进行加锁,期间该数据可以被其他线程进行读写操作。比较适合读取操作比较频繁的场景,如果出现大量的写入操作,数据发生冲突的可能...原创 2020-04-27 10:47:30 · 7525 阅读 · 0 评论 -
Spring 事务底层原理
Spring 事务底层原理划分处理单元IOC由于 Spring 解决的问题是对单个数据库进行局部事务处理的,具体的实现首相用 Spring 中的 IOC 划分了事务处理单元。并且将对事务的各种配置放到了 IOC 容器中(设置事务管理器,设置事务的传播特性及隔离机制)。AOP 拦截需要进行事务处理的类Spring 事务处理模块是通过 AOP 功能来实现声明式事务处理的,具体操作(比如事务实行...原创 2020-04-27 10:45:01 · 227 阅读 · 0 评论 -
Spring MVC 中的load-on-startup
在servlet的配置当中,1的含义是:标记容器是否在启动的时候就加载这个servlet。当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。正数的值越小,启动该servlet的优先级越高。如果我们在web.xml中设置了多个servlet的时候,可以使用load-on-startup来指定serv...原创 2020-04-27 10:44:13 · 1712 阅读 · 0 评论