摘要: Callable接口: public interface Callable<V> { V call() throws Exception; } Runnable接口: public interface Runnable { public abstract void run(); } 相同点: 不同点 阅读全文
posted @ 2018-10-12 17:37 沫小淘 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 1 线程池做什么 网络请求通常有两种形式: 第一种,请求不是很频繁,而且每次连接后会保持相当一段时间来读数据或者写数据,最后断开,如文件下载,网络流媒体等。 另一种形式是请求频繁,但是连接上以后读/写很少量的数据就断开连接。考虑到服务的并发问题,如果每个请求来到以后服务都为它启动一个线程,那么这对服 阅读全文
posted @ 2018-10-12 16:46 沫小淘 阅读(27627) 评论(0) 推荐(2) 编辑
摘要: 定义线程池 第一步,先在Spring Boot主类中定义一个线程池,比如: 上面我们通过使用ThreadPoolTaskExecutor创建了一个线程池,同时设置了以下这些参数: 核心线程数10:线程池创建时候初始化的线程数 最大线程数20:线程池最大的线程数,只有在缓冲队列满了之后才会申请超过核心 阅读全文
posted @ 2018-10-12 13:01 沫小淘 阅读(15399) 评论(0) 推荐(2) 编辑
摘要: 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解是不会生效的。 比如,下面代码例子中,有两方法,一个有@Transational注解,一个没有。如果调用了有注解的addPerson()方法,会启动一个Transaction;如果调用updatePe 阅读全文
posted @ 2018-10-12 11:05 沫小淘 阅读(2737) 评论(0) 推荐(0) 编辑
摘要: 在Java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。synchronized既可以加在一段代码上,也可以加在方法上。 关键是,不要认为给方法或者代码段加上synchronized就万事大吉,看下面一段代码: 阅读全文
posted @ 2018-10-12 10:10 沫小淘 阅读(402) 评论(0) 推荐(0) 编辑