10 2018 档案

摘要:在Spring5.0和SpringBoot2.0中废弃了WebMvcConfigurerAdapter类。 现有两种解决方案 1 直接实现WebMvcConfigurer (官方推荐)2 直接继承WebMvcConfigurationSupport本篇文章讨论下使用第一种方式完成参数校验。 首先附上 阅读全文
posted @ 2018-10-25 17:29 沫小淘 阅读(2009) 评论(0) 推荐(0) 编辑
摘要:Java多线程之同步集合和并发集合 不管是同步集合还是并发集合他们都支持线程安全,他们之间主要的区别体现在性能和可扩展性,还有他们如何实现的线程安全。 同步集合类 Hashtable Vector 同步集合包装类,Collections.synchronizedMap()和Collections.s 阅读全文
posted @ 2018-10-25 16:06 沫小淘 阅读(5950) 评论(0) 推荐(1) 编辑
摘要:wait和notify方法,有个地方要注意,就是经典的生产者和消费模式,使用wait和notify实现,判断条件为什么要用while而不能使用if呢?其实是因为当线程wait之后,又被唤醒的时候,是从wait后面开始执行,而不是又从头开始执行的,所以如果用if的话,被唤醒之后就不会在判断if中的条件 阅读全文
posted @ 2018-10-25 15:50 沫小淘 阅读(532) 评论(0) 推荐(0) 编辑
摘要:分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如 阅读全文
posted @ 2018-10-17 14:39 沫小淘 阅读(195) 评论(0) 推荐(0) 编辑
摘要:编写多线程程序一般有三种方法,Thread,Runnable,Callable. Runnable和Callable的区别是: (1)Callable规定的方法是call(),Runnable规定的方法是run()。其中Runnable可以提交给Thread来包装下,直接启动一个线程来执行,而Cal 阅读全文
posted @ 2018-10-15 10:13 沫小淘 阅读(1460) 评论(0) 推荐(0) 编辑
摘要:Callable接口: public interface Callable<V> { V call() throws Exception; } Runnable接口: public interface Runnable { public abstract void run(); } 相同点: 不同点 阅读全文
posted @ 2018-10-12 17:37 沫小淘 阅读(220) 评论(0) 推荐(0) 编辑
摘要:1 线程池做什么 网络请求通常有两种形式: 第一种,请求不是很频繁,而且每次连接后会保持相当一段时间来读数据或者写数据,最后断开,如文件下载,网络流媒体等。 另一种形式是请求频繁,但是连接上以后读/写很少量的数据就断开连接。考虑到服务的并发问题,如果每个请求来到以后服务都为它启动一个线程,那么这对服 阅读全文
posted @ 2018-10-12 16:46 沫小淘 阅读(27647) 评论(0) 推荐(2) 编辑
摘要:定义线程池 第一步,先在Spring Boot主类中定义一个线程池,比如: 上面我们通过使用ThreadPoolTaskExecutor创建了一个线程池,同时设置了以下这些参数: 核心线程数10:线程池创建时候初始化的线程数 最大线程数20:线程池最大的线程数,只有在缓冲队列满了之后才会申请超过核心 阅读全文
posted @ 2018-10-12 13:01 沫小淘 阅读(15439) 评论(0) 推荐(2) 编辑
摘要:在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解是不会生效的。 比如,下面代码例子中,有两方法,一个有@Transational注解,一个没有。如果调用了有注解的addPerson()方法,会启动一个Transaction;如果调用updatePe 阅读全文
posted @ 2018-10-12 11:05 沫小淘 阅读(2753) 评论(0) 推荐(0) 编辑
摘要:在Java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。synchronized既可以加在一段代码上,也可以加在方法上。 关键是,不要认为给方法或者代码段加上synchronized就万事大吉,看下面一段代码: 阅读全文
posted @ 2018-10-12 10:10 沫小淘 阅读(403) 评论(0) 推荐(0) 编辑
摘要:生产者消费者模型是我们学习多线程知识的一个经典案例,一个典型的生产者消费者模型如下: public void produce() { synchronized (this) { while (mBuf.isFull()) { try { wait(); } catch (InterruptedExc 阅读全文
posted @ 2018-10-11 14:31 沫小淘 阅读(333) 评论(0) 推荐(0) 编辑
摘要:结合synchronized,会更好的理解sleep()和wait()这两个方法,当然也就知道了他们的区别了。这篇博客就一起学习这两个方法 sleep() sleep() 方法是线程类(Thread)的静态方法,让调用线程进入睡眠状态,让出执行机会给其他线程,等到休眠时间结束后,线程进入就绪状态和其 阅读全文
posted @ 2018-10-10 18:25 沫小淘 阅读(244) 评论(0) 推荐(0) 编辑
摘要:线程同步 什么是线程同步 线程之间执行是有先后顺序的,一个线程要等待上一个线程执行完之后才开始执行当前的线程。 为什么要线程同步 java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,所以需要线程同步执行,保证了该变量的唯一 阅读全文
posted @ 2018-10-10 17:41 沫小淘 阅读(1517) 评论(0) 推荐(0) 编辑
摘要:问题产生: 因为我们在web.xml中写了 拦截所有请求,当然包括了静态资源,所以页面需要引用css或js的话,该请求也会被拦截,例如: 在style.css中写一个简单样式,加个背景颜色 body{ background-color: antiquewhite; } 然后在index.jsp页面引 阅读全文
posted @ 2018-10-08 10:01 沫小淘 阅读(8278) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示