# 一面 1. RAII底层原理,使用Java实现2. TCP讲一下,泛洪攻击讲一下怎么避免,TCP keepalive了解吗?3. 数据库隔离级别,不同隔离级别的现象解释一下。4. 数据库的锁机制5. 悲观锁、乐观锁讲一下6. 自旋锁互斥锁,适用于什么场景,自旋锁底层实现7. TCP的RST了解吗... ...
分类:
编程语言 时间:
2020-04-21 12:45:59
阅读次数:
84
一: 先上结论,如果把锁放在事务里面,会出现脏读数据,解决方案:锁上移。 1.有问题的代码: @Service public class SeckillServiceImpl extends ServiceImpl<SeckillMapper, Seckill> implements ISeckil ...
分类:
编程语言 时间:
2020-04-21 09:58:45
阅读次数:
67
C++的核心理念之一是RAII,Resource Acquisition Is Initialization,资源获取即初始化。资源有很多种,内存、互斥锁、文件、套接字等;RAII可以用来实现一种与作用域绑定的资源管理方法(如 );这些都不在本文的讨论范围之内。 内存是一种资源。从字面上来看,“资源 ...
分类:
其他好文 时间:
2020-04-20 23:24:08
阅读次数:
76
一.同步和互斥机制 信号量 互斥锁 同步:指多个任务按照约定的先后次序相互配合来完成一件事情. 比如读线程等待写线程写完之后再去读. 二.信号量-P/V操作 P(s)含义: if(信号量>0) { 申请资源的任务运行; 信号量--; } else {申请资源的任务阻塞} V(S)含义: 信号量++; ...
分类:
系统相关 时间:
2020-04-20 23:21:07
阅读次数:
99
一.概述 linux中不区分进程和线程,都认为是个任务,都是创建一个task_struct.如何区分?线程是共享相同地址空间,而进程是独占地址空间. 多线程共享同一进程的地址空间 优点: 通信方便,可以通过全局变量. 缺点: 访问共享数据时需要考虑同步和互斥. 二.线程共享资源: 可执行的指令 静态 ...
分类:
编程语言 时间:
2020-04-20 15:23:25
阅读次数:
65
缓存击穿 缓存中没有但数据库中有的数据(一般是缓存时间到期),同时高并发读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大 解决 1.设置热点数据永远不过期。 2.加互斥锁,没有命中缓存的时候,加锁访问数据库,不造成数据库的瞬间压力 缓存穿透 用户想要查询一个数据,发现redis内存数 ...
分类:
其他好文 时间:
2020-04-20 01:34:40
阅读次数:
102
1、synchronized作用于静态方法和非静态方法的区别 非静态方法: 给对象加锁(可以理解为给这个对象的内存上锁,注意 只是这块内存,其他同类对象都会有各自的内存锁),这时候在其他一个以上线程中执行该对象的这个同步方法(注意:是该对象)就会产生互斥 静态方法: 相当于在类上加锁(*.class ...
分类:
编程语言 时间:
2020-04-19 10:38:56
阅读次数:
155
一、操作系统是什么 1.常见的操作系统 2.操作系统的定义: 操作系统(OS)是一个大型的程序系统,它负责计算机的全部软、硬件资源的分配、调度工作,控制并协调多个任务的活动, 实现信息的存取和保护。它提供用户接口,使用户获得良好的工作环境。 3.操作系统的目标: 方便性:配置OS后计算机系统更容易使 ...
分类:
其他好文 时间:
2020-04-16 00:21:52
阅读次数:
94
1 import time 2 from threading import Thread,Lock 3 #创建3把互斥锁 4 lock1 = Lock() 5 lock2 = Lock() 6 lock3 = Lock() 7 #对lock2和lock3上锁 8 lock2.acquire() 9 ...
分类:
编程语言 时间:
2020-04-12 00:10:45
阅读次数:
87