一,引言 首先我们要明白一点,缓存所做的一切都是为了提高性能。明白了这一点下面我们开始进入正题。 二,mybatis缓存概要 ①、mybatis的缓存有两种,分别是一级缓存和二级缓存。两者都属于查询缓存,也就是只有执行查询操作的时候才起缓存作用,对于增删改操作无效。 ②、一级缓存默认开启,二级缓存默 ...
分类:
系统相关 时间:
2020-02-25 19:53:15
阅读次数:
77
简介 基于生产者消费者模式,我们可以开发出线程安全的异步消息队列。 知识储备 什么是生产者消费者模式? 为了方便理解,我们暂时将它理解为垃圾的产生到结束的过程。 简单来说,多住户产生垃圾(生产者)将垃圾投递到全小区唯一一个垃圾桶(单队列),环卫将垃圾桶中的垃圾进行处理(消费者)。就是一个生产者消费者 ...
1. queue线程安全的FIFO实现 queue模块提供了一个适用于多线程编程的先进先出(FIFO,first-in,first-out)数据结构,可以用来在生产者和消费者线程之间安全地传递消息或其他数据。它会为调用者处理锁定,使多个线程可以安全而容易地处理同一个Queue实例。Queue的大小( ...
分类:
编程语言 时间:
2020-02-24 09:14:46
阅读次数:
108
简介:Fork/Join是由Java 7提供的并行执行任务框架,思路就是任务切分,结果合并,同时利用工作窃取机制,目的是提高效率。 1. 概念 A. 分而治之:即将任务划分为多个子任务,然后并行的执行这些子任务,等所有子任务都结束的时候,再合并成最终结果; B. 工作窃取:当一个工作线程的本地没有任 ...
分类:
编程语言 时间:
2020-02-23 11:41:18
阅读次数:
84
1:Stack特点 stack:栈,是一种特殊的数据结构,有着先入后出的特点(first in last out)。stack中栈底始终不变,只有一端能变化。栈顶在有数据push的时候增大,有数据pop的时候减小!相比于队列Queue而言,队列是先进先出(first in first out),队列 ...
分类:
编程语言 时间:
2020-02-21 19:58:44
阅读次数:
60
队列 介绍 队列是一个有序列表,可以用 数组 或者 链表 实现 遵循先进先出原则 数组模拟队列 队列本身是有序列表,maxSize为队列最大容量 需要两个 front , rear 随着数据输入而改变 rear是队尾,front为队头 队列入队为addQueue, addQueue处理 1. 尾指针 ...
分类:
其他好文 时间:
2020-02-20 12:57:35
阅读次数:
61
//队列,先进先出 class Queue { constructor () { this.items = [] } //入队 enqueue (elem) { return this.items.push(this.items) } //出队 dequeue () { return this.it ...
分类:
其他好文 时间:
2020-02-18 13:17:30
阅读次数:
69
集合 框架关系图: Collection接口下面有三个子接口:List、Set、Queue。此篇是关于Queue<E>的简单学习总结。 Queue: Queue(队列):是一种特殊的链型结构,它的特点是先进先出(FIFO),通常只在尾部插入,头部删除,它经常和Stack(栈)进行比较,但Stack的 ...
分类:
其他好文 时间:
2020-02-17 17:46:41
阅读次数:
59
我们先来讨论一个经典的链表应用场景,那就是 LRU 缓存淘汰算法。 缓存的大小有限,当缓存被用满时,哪些数据应该被清理出去,哪些数据应该被保留?这就需要缓存淘汰策略来决定。 常见的策略有三种: 先进先出策略 FIFO(First In,First Out)、最少使用策略 LFU(Least Freq ...
分类:
编程语言 时间:
2020-02-15 21:55:56
阅读次数:
71
有三种不同的用法 class queue.Queue(maxsize=0) #队列:先进先出 按 Ctrl+C 复制代码 按 Ctrl+C 复制代码 class queue.LifoQueue(maxsize=0) #堆栈:last in fisrt out import queue q=queue ...
分类:
编程语言 时间:
2020-02-11 21:58:36
阅读次数:
90