摘要:
一、读写锁简介 现实中有这样一种场景:对共享资源有读和写的操作,且写操作没有读操作那么频繁。在没有写操作的时候,多个线程同时读一个资源没有任何问题,所以应该允许多个线程同时读取共享资源;但是如果一个线程想去写这些共享资源,就不应该允许其他线程对该资源进行读和写的操作了。 针对这种场景,JAVA的并发 阅读全文
摘要:
本文将分析springmvc是如何在容器启动的时候将各个模块加载完成容器的创建的。 我知道在web.xml文件中我们是这样配置springmvc的: 可以看到,springmvc的核心控制器就是DispatcherServlet。看下DispatcherServlet的继承关系: HttpSerlv 阅读全文
摘要:
一、死锁的定义 多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而,并发执行也带来了新的问题——死锁。所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。 所谓死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的 阅读全文
摘要:
一、Callable 与 Runnable 先说一下java.lang.Runnable吧,它是一个接口,在它里面只声明了一个run()方法: 由于run()方法返回值为void类型,所以在执行完任务之后无法返回任何结果。 Callable位于java.util.concurrent包下,它也是一个 阅读全文
摘要:
问题: 假设某个表有一个联合索引(c1,c2,c3,c4)以下只能使用该联合索引的c1,c2,c3部分 A where c1=x and c2=x and c4>x and c3=x B where c1=x and c2=x and c4=x order by c3 C where c1=x an 阅读全文
摘要:
我们开发任何一个Spring Boot项目,都会用到如下的启动类 从上面代码可以看出,Annotation定义(@SpringBootApplication)和类定义(SpringApplication.run)最为耀眼,所以要揭开SpringBoot的神秘面纱,我们要从这两位开始就可以了。 一、S 阅读全文
摘要:
一道编程题如下: 实例化三个线程,一个线程打印a,一个线程打印b,一个线程打印c,三个线程同时执行,要求打印出10个连着的abc。 题目分析: 通过题意我们可以得出,本题需要我们使用三个线程,三个线程分别会打印6次字符,关键是如何保证顺序一定是abc...呢。所以此题需要同步机制来解决问题! 令打印 阅读全文
摘要:
一、两个线程一个生产者一个消费者 需求情景 两个线程,一个负责生产,一个负责消费,生产者生产一个,消费者消费一个。 涉及问题 同步问题:如何保证同一资源被多个线程并发访问时的完整性。常用的同步方法是采用标记或加锁机制。 wait() / nofity() 方法是基类Object的两个方法,也就意味着 阅读全文
摘要:
一、Stream初体验 Stream是Java8中操作集合的一个重要特性,我们先来看看Java里面是怎么定义Stream的: 我们来解读一下上面的那句话: 1、Stream是元素的集合,这点让Stream看起来用些类似Iterator; 2、可以支持顺序和并行的对原Stream进行汇聚的操作。 大家 阅读全文
摘要:
今天介绍原型模式,我自己偷偷给它命名为克隆模式。因为原型模式的意图是通过复制一个现有的对象来生成新的对象,而不是通过实例化的方式。 一、原型模式概念 原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种对象创建型模式。 该接 阅读全文