摘要: 主要使用的就是两个存储引擎,分别是InnoDB和MyISAM。 InnoDB InnoDB是MySQL的默认存储引擎。 InnoDB采用MVCC来支持高并发,并且实现了四个标准的隔离级别。默认的隔离级别是可重复读。通过间隙锁策略防止幻读的出现。 InnoDB表是基于聚簇索引建立的。聚簇索引对主键查询 阅读全文
posted @ 2020-04-20 23:27 IT路上的小白 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 进程和线程 进程与线程最主要的区别是它们是操作系统管理资源的不同方式的体现。 准确来说进程与线程属于衍生关系。 进程是操作系统执行程序的一次过程,在这个过程中可能会产生多个线程。 比如在使用QQ时,有窗口线程, 文字发送的线程,语音输入的线程,可能不是很恰当,但是就是这个意思。 由于系统在线程之间的 阅读全文
posted @ 2020-04-20 23:12 IT路上的小白 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 此文章转: https://www.cnblogs.com/notchangeworld/p/12483194.html\ 如何保障mysql和redis之间的数据一致性?在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到re 阅读全文
posted @ 2020-04-20 20:17 IT路上的小白 阅读(2295) 评论(0) 推荐(0) 编辑
摘要: 详情:https://blog.51cto.com/turnsole/2120848 阅读全文
posted @ 2020-04-20 17:11 IT路上的小白 阅读(1843) 评论(0) 推荐(0) 编辑
摘要: 思想:分而治之(跟mapreduce的思想是一样),简言之,大事化小; 相关类架构: 分支合并池 类比=> 线程池 相关类架构: ForkJoinTask 类比=> FutureTask 相关类架构: 递归任务:继承后可以实现递归(自己调自己)调用的任务 class Fibonacci extend 阅读全文
posted @ 2020-04-20 16:59 IT路上的小白 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 线程池的优势:线程池做的工作只要是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行。 它的主要特点为:线程复用;控制最大并发数;管理线程。 第一:降低资源消耗。通过重复利用已创 阅读全文
posted @ 2020-04-20 16:35 IT路上的小白 阅读(998) 评论(0) 推荐(0) 编辑
摘要: 在了解阻塞队列之前,先了解栈和队列。 栈:先进后出,后进先出 (类似于子弹夹里面的子弹) 队列:先进先出(类似于排队打饭,先来先得) 什么是 阻塞队列: 线程1往阻塞队列里添加元素,线程2从阻塞队列里移除元素当队列是空的,从队列中获取元素的操作将会被阻塞当队列是满的,从队列中添加元素的操作将会被阻塞 阅读全文
posted @ 2020-04-20 16:00 IT路上的小白 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 原理: 在信号量上我们定义两种操作: * acquire(获取) 当一个线程调用acquire操作时,它要么通过成功获取信号量(信号量减1), * 要么一直等下去,直到有线程释放信号量,或超时。 * release(释放)实际上会将信号量的值加1,然后唤醒等待的线程。 * * 信号量主要用于两个目的 阅读全文
posted @ 2020-04-20 15:46 IT路上的小白 阅读(230) 评论(2) 推荐(0) 编辑
摘要: 原理: CyclicBarrier的字面意思是可循环(Cyclic)使用的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞, 直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。线程进入屏障通过CyclicBarrier的await() 阅读全文
posted @ 2020-04-20 15:45 IT路上的小白 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 原理: CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,这些线程会阻塞。其它线程调用countDown方法会将计数器减1(调用countDown方法的线程不会阻塞),当计数器的值变为0时,因await方法阻塞的线程会被唤醒,继续执行。 import java.uti 阅读全文
posted @ 2020-04-20 15:42 IT路上的小白 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 多线程任务,一般用于数据量较大的场景,比如开启多个异步方法先分别去执行,最终返回数据。 例子:(1)老师上着课,口渴了,去买水不合适,讲课线程继续,我可以单起个线程找班长帮忙买水,水买回来了放桌上,我需要的时候再去get。(2)4个同学,A算1+20,B算21+30,C算31*到40,D算41+50 阅读全文
posted @ 2020-04-20 15:40 IT路上的小白 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 不废话,直接上代码 //演示HashMap类的并发问题 @Test public void demo1() { Map<String, Integer> map = new HashMap<>(); Random random = new Random(); for (int i = 0; i < 阅读全文
posted @ 2020-04-20 11:05 IT路上的小白 阅读(147) 评论(0) 推荐(0) 编辑
摘要: Set 作为一个接口,它的实现类中主要是hashset,在多线程操作set的时候会出现问题,一下为一个列子 public static void main(String[] args) throws Exception { Set<String> set = new HashSet<>(); for 阅读全文
posted @ 2020-04-20 10:50 IT路上的小白 阅读(199) 评论(0) 推荐(0) 编辑
摘要: List : 在多线程操作List的时候,在一个线程里面add东西,list实际上的大小跟预计是不一样的 public void demo1() { List<String> list = new ArrayList<>(); Random random = new Random(); for (i 阅读全文
posted @ 2020-04-20 10:25 IT路上的小白 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 线程8锁,主要描绘多线程操作资源类时候的先后顺序问题 总结: package 第二季_25_锁; import java.util.concurrent.TimeUnit; /** * * @Description: 8锁 * 1 标准访问,先打印短信还是邮件 2 停4秒在短信方法内,先打印短信还是 阅读全文
posted @ 2020-04-20 10:06 IT路上的小白 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 1.首先我们回顾一下面试题: 两个线程,一个线程打印1-52,另一个打印字母A-Z打印顺序为12A34B...5152Z, 要求用线程间通信 这个面试题就就是完全考察线程之间的通信机制,常用的技术分为二种 一种是Object 类中的自带的 wait 和 notify 机制, 二是 lock中的通信机 阅读全文
posted @ 2020-04-20 09:56 IT路上的小白 阅读(889) 评论(0) 推荐(0) 编辑
摘要: 1.继承 Thread 类,Thread的底层用的也是Runnable接口 package com.opendev.Thread; import java.util.Map; public class MyThread extends Thread { /** * 继承Thread方式 * * * 阅读全文
posted @ 2020-04-20 09:30 IT路上的小白 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 介绍: synchronized:它是Jdk自带的一种锁机制,它能够锁住当前的对象,资源类,以及同步方法块。 Lock:它是Java 1.5之后提供的一种新的机制,能够更好的去操作当前的线程 Lock的优点:锁实现提供了比使用同步方法和语句可以获得的更广泛的锁操作。它们允许更灵活的结构,可能具有非常 阅读全文
posted @ 2020-04-20 09:22 IT路上的小白 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 1.线程与进程的关系: 进程:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。 线程:通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程可以利用进程 阅读全文
posted @ 2020-04-20 09:07 IT路上的小白 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 线程池在用之前最好先判断一下池此时的状态,避免池子满了报这个错误 java.util.concurrent.RejectedExecutionException(详细的看线程池的底层源码) 阅读全文
posted @ 2020-04-20 08:41 IT路上的小白 阅读(2046) 评论(0) 推荐(0) 编辑