随笔分类 -  多线程与并发

摘要:1.使用线程池时,生产环境中线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式的原因: 使用Executors创建线程池有三种方式: 1.newCachedThreadPool():创建缓存线程池。 当一个任务提交时,corePoolSize为0不创建核心线 阅读全文

posted @ 2020-07-11 17:20 永不宕机 阅读(156) 评论(0) 推荐(0)

摘要:web项目中每个请求都是一个新的线程,如下代码,在不同的service层中操作相同的数据时,会出现线程安全问题。具体表现是:设定 sms初始值为10,smsUsed初始值为0;则两个请求分别同时访问test方法和testB方法时,两个方法中输出的结果显示:sms:9 smsUsed:1;按照正常的业 阅读全文

posted @ 2020-04-10 17:18 永不宕机 阅读(303) 评论(0) 推荐(0)

摘要:缓存的demo(hibernate中get和load的区别:load是懒加载,如果查询数据为空时,get方法返回null,而load方法抛出异常) 阅读全文

posted @ 2019-05-27 17:05 永不宕机 阅读(140) 评论(0) 推荐(0)

摘要:package com.zhl.practice; import java.util.concurrent.*; /** * @author Holley * @Description 多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程( 其中callable依赖于线程池) *... 阅读全文

posted @ 2019-05-27 14:21 永不宕机 阅读(272) 评论(0) 推荐(0)

摘要:注:lock是可重入锁 lock锁分为两类:公平锁和非公平锁。按照本人的理解,公平锁指的是在多个线程同时获取锁时,会按照该线程的请求先后顺序来决定哪个线程优先获取到锁(即:根据同步队列中的线程顺序来决定),非公平锁则是自由竞争,和线程的等待时间无关。 而且非公平锁可能出现一个线程连续获取锁的现象(原 阅读全文

posted @ 2019-05-16 11:57 永不宕机 阅读(1336) 评论(0) 推荐(0)

导航