记录
phantom0301
这个作者很懒,什么都没留下…
展开
-
线程池参数详解及其工作原理
线程池的作用及优势 线程池做的工作主要是控制运行的线程的数量,处理过程中将任务加入队列,然后在线程创建后启动这些任务,如果提交的任务超过了线程能执行的最大数量,超出的数量的任务会被提交到一个阻塞队列排队等候,等其他线程执行完毕,再从队列中取出任务来执行. 主要特点为:线程复用:控制最大并发数:管理线程. 第一:降低资源消耗.通过重复利用自己创建的线程降低线程创建和销毁造成的消耗. 第二: 提高响应...原创 2019-10-30 08:30:07 · 1011 阅读 · 0 评论 -
线程的虚假唤醒
所谓虚假唤醒字面意思理解就是线程在被唤醒后,线程执行等待的变量条件实际上仍然不满足,这种情况发生在两个以上的多线程生产者消费者问题中。 从一个实际的例子中来理解虚假唤醒,建立一个简单的消费者生产者模型,判断条件时共享资源number是否等于0,等于0时,生产者让其+1,不等于0时,消费者让其-1。 public class PretendNotify { public static vo...原创 2019-10-26 09:54:53 · 257 阅读 · 0 评论 -
读写锁(独占锁/共享锁)ReentrantReadWriteLock
多个线程同时操作一个资源时为了满足并发量的同时提高效率(加重锁会降低效率),对于读取共享资源应该可以同时进行,但是如果有一个线程想去改写共享资源时,就不应该有其他线程可以对资源进行读或写。 读能共存 读 写不能共存 写 写不能共存 写的操作有原子+独占的特点,整个过程必须是一个完成的统一整体 中间不允许被分割打断。 没有加锁的情况如下: public class RawLock { ...原创 2019-10-25 12:14:50 · 742 阅读 · 0 评论 -
公平/非公平锁/可重入锁/自旋锁
公平锁 是指多个线程按照申请锁的顺序来获取锁类似排队打饭 先来后到 非公平锁 是指在多线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取到锁,在高并发的情况下,有可能造成优先级反转或者饥饿现象 日常见到的比较多的两种锁,也就是synchronized/ReentrantLock,synchronized是非公平锁,而ReentrantLock可以通过构造函数指定该锁是...原创 2019-10-24 10:30:24 · 411 阅读 · 0 评论 -
BIO,NIO,AIO的区别有哪些?
要理解BIO,NIO,AIO,首先要理解同步和异步,阻塞和非阻塞这两对概念。 举个例子,去银行存钱,将钱和存折都交给了窗口的服务人员,然后你要一直坐在那里等柜员帮你处理好业务,最后告诉你存好了把存折还给你,你再离开,这是同步。 如果刚好这个柜员是你的发小,你跟他说:“我还有事先走了,一会儿存好了你打电话告诉我一声。”然后你不用等待流程完成,就可以离开了,这是异步。 同步和异步的区别在于当前的请求返...原创 2019-10-22 21:09:46 · 1016 阅读 · 0 评论 -
记录
SSM综合练习,记录一些问题 PageHelper分页查询插件 1.分页查询的时候用到了一个Mybatis插件pageHelper,在SSM整合框架中MyBatis的sqlSessionFactory已经被IoC容器接管了,所以MyBatis并没有单独的配置文件,在spring的配置文件中对其进行配置。 <!-- 注意其他配置 --> <property name="plugi...原创 2019-10-10 08:24:46 · 105 阅读 · 0 评论