自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (1)
  • 收藏
  • 关注

原创 InnoDB执行引擎的BufferPool缓存机制

这么复杂的机制,是为了保证并发,因为硬盘的随机读写性能是非常差的,通过这样的机制,可以保证数据不被丢失的同时,有很高的读写性能,可以在较高机器配置下抗下几千的读写请求。Mysql这套机制可以保证每个更新请求都是先更新内存BufferPool,然后顺序写日志,保证各种异常情况的数据一致性。...

2020-09-24 23:10:54 172

原创 Mysql MVCC多版本并发控制

Mysql MVCC多版本并发控制简介Undo日志版本链与read view机制详解一致性视图 read-view构成可重复读和读已提交差别比对规则总结简介Mysql在可重复读级别下,同样的sql在一个事务里面多次执行查询结果相同,即使有其他事务对数据有修改也不会影响当前事务的查询结果。这个隔离就是通过MVCC(多版本并发控制 Multi-Version Concurrency Control),对同一行的数据的读和写两个操作是不会通过加锁互斥来保证隔离性,避免频繁加互斥锁。串行化隔离级别为了保证隔

2020-09-24 23:05:02 121

原创 Mysql锁学习笔记

Mysql锁学习笔记锁分类表锁行锁总结行锁与事务隔离级别案例分析读未提交:读已提交可重复读串行化间隙锁(Gap Lock)临键锁(Next-key Locks)Mysql锁其他特点锁主要是加在索引上,如果对非索引字段更新,行锁可能会变表锁锁优化建议锁分类从性能上分,乐观锁和悲观锁从对数据库操作上分,读锁和写锁(都是悲观锁)读锁 (共享锁,shared锁)多个会话可以同时读,不能写写锁 (排它锁,exclusive锁)只有一个会话可以读写,其他会话阻塞,知道当前获取的会话释放锁,其他会话才能执行

2020-09-20 15:58:14 153

原创 Mysql事务隔离

Mysql事务隔离事务隔离为什么要有事务隔离事务及其ACID属性事务并发带来的问题事务隔离为什么要有事务隔离数据库会并发执行多个事务,不同的事务可能会对同一批数据进行增删改查操作,就会引起数据脏写、脏读、不可重复读、幻读等情况。本质上都是由于事务之间的并发导致,简单点说就是事务之间互相影响,导致数据不一致问题。事务隔离机制就是解决多事务并发的一种方式。事务及其ACID属性事务是由一组sql组成的逻辑处理单元。具有ACID四个属性:原子性(Atomicity) 事务是一个原子操作单元,不可分割

2020-09-18 00:16:57 59

原创 Java synchronized学习

synchronized简介静态方法加锁一般方法加锁实现原理代码块加锁实现原理Monitor对象对象内存布局1. 对象头(Header)2. 实例数据(Instance Data)3. 对齐填充(Padding)锁的升级过程偏向锁轻量级锁自旋锁重量级锁锁消除逃逸分析优化简介synchronized修饰符是Java提供的多线程访问临界资源的同步器,一般我们有三种使用方式:对类的静态方法加锁对类的一般方法加锁对代码块加锁静态方法加锁静态方法是属于类的,所以这种加锁实际上对类进行加锁,加锁对象为

2020-09-13 18:13:09 112

原创 AQS学习

文章目录AQS是啥特性主要属性1.状态2.阻塞队列自定义需要实现的方法isHeldExclusively()tryAcquire(int)tryRelease(int)tryAcquireShared(int)tryReleaseShared(int)需要注意的地方AQS是啥AQS (Abstract Queue Synchronizer),抽象队列同步器,定义了一套多线程访问共享资源的同步器框架,是一个依赖状态的同步器。特性阻塞等待队列共享/独占公平/非公平可重入允许中断主要属性1

2020-09-08 21:21:08 102

原创 JAVA线程池

JAVA线程池为啥要用线程池什么时候使用线程池线程池主要方法线程池状态线程池创建1. corePoolSize 核心线程数2. maximumPoolSize 最大线程数3. keepAlivetime 线程最大空余时间4. workQueue 等待线程队列5. threadFactory 线程工厂6. handler 拒绝策略为啥要用线程池JAVA虚拟机线程实现是KLT模型,与OS线程是1:1的映射关系,就是使用内核态线程来实现虚拟机线程,所以线程的创建、调度、销毁都需要切换到内核态,所以线程是稀

2020-09-01 21:16:25 96

遗传算法MATLAB代码

简单的遗传算法,计算函数最值. function ga_main() % 遗传算法程序 % n-- 种群规模% ger-- 迭代次数% pc--- 交叉概率% pm-- 变异概率 % v-- 初始种群(规模为n)% f-- 目标函数值% fit-- 适应度向量 % vx-- 最优适应度值向量% vmfit-- 平均适应度值向量 clear all; close all; clc;%清屏 tic;%计时器开始计时 n=20;ger=100;pc=0.65;pm=0.05;%初始化参数 %以上为经验值,可以更改。 % 生成初始种群 v=init_population(n,22); %得到初始种群,22串长,生成20*22的0-1矩阵 [N,L]=size(v); %得到初始规模行,列 disp(sprintf('Number of generations:%d',ger)); disp(sprintf('Population size:%d',N)); disp(sprintf('Crossover probability:%.3f',pc)); disp(sprintf('Mutation probability:%.3f',pm)); %sprintf可以控制输出格式 % 待优化问题 xmin=0;xmax=9; %变量X范围 f='x+10*sin(x.*5)+7*cos(x.*4)'; % 计算适应度,并画出初始种群图形 x=decode(v(:,1:22),xmin,xmax);"位二进制换成十进制,%冒号表示对所有行进行操作。 fit=eval&#40;f&#41;;%eval转化成数值型的 %计算适应度 figure(1);%打开第一个窗口 fplot(f,[xmin,xmax]);%隐函数画图 grid on;hold on; plot(x,fit,'k*');%作图,画初始种群的适应度图像 title('(a)染色体的初始位置');%标题 xlabel('x');ylabel('f(x)');%标记轴 % 迭代前的初始化 vmfit=[];%平均适应度 vx=[]; %最优适应度 it=1; % 迭代计数器 % 开始进化 while it<=ger %迭代次数 0代 %Reproduction(Bi-classist Selection) vtemp=roulette(v,fit);%复制算子 %Crossover v=crossover(vtemp,pc);%交叉算子 %Mutation变异算子 M=rand(N,L)<=pm;%这里的作用找到比0.05小的分量 %M(1,:)=zeros(1,L); v=v-2.*(v.*M)+M;%两个0-1矩阵相乘后M是1的地方V就不变,再乘以2. NICE!!确实好!!!把M中为1的位置上的地方的值变反 %这里是点乘 %变异 %Results x=decode(v(:,1:22),xmin,xmax);%解码,求目标函数值 fit=eval&#40;f&#41;; %计算数值 [sol,indb]=max(fit);% 每次迭代中最优目标函数值,包括位置 v(1,:)=v(indb,:); %用最大值代替 fit_mean=mean(fit); % 每次迭代中目标函数值的平均值。mean求均值 vx=[vx sol]; %最优适应度值 vmfit=[vmfit fit_mean];%适应度均值 it=it+1; %迭代次数计数器增加 end

2012-11-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除