<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xiaoy81的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xiaoy81</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaoy81]]></copyright><item><title><![CDATA[开贴请教路人大神两个问题：一个MESI协议问题，另一个是经典的单例的双重检测线程安全问题]]></title><link>https://blog.youkuaiyun.com/xiaoy81/article/details/77529920</link><guid>https://blog.youkuaiyun.com/xiaoy81/article/details/77529920</guid><author>xiaoy81</author><pubDate>Thu, 24 Aug 2017 15:04:15 +0800</pubDate><description><![CDATA[先抛问题和我自己的理解：

 

问题一：MESI协议问题

比如这样一个场景：有一个变量a=0；有两个线程同时在多核环境下去执行a++去更改这个变量。 按照缓存一致性是不是应该是这样一个过程：两个cpu都把a读到缓存，此时a是一个S的状态，现在两个cpu都要去修改a，但是只能有一个cpu（假设是cpu1）把a修改为M状态，另一个会变为I（失效状态），当cpu2再要去执行a++的时候，会去主存读取...]]></description><category></category></item><item><title><![CDATA[spring与mybatis四种整合方法]]></title><link>https://blog.youkuaiyun.com/xiaoy81/article/details/46409533</link><guid>https://blog.youkuaiyun.com/xiaoy81/article/details/46409533</guid><author>xiaoy81</author><pubDate>Mon, 08 Jun 2015 10:49:46 +0800</pubDate><description><![CDATA[1、采用数据映射器（MapperFactoryBean）的方式，不用写mybatis映射文件，采用注解方式提供相应的sql语句和输入参数。 
  （1）Spring配置文件：
      
     
       
       
         
         
         
         
         
         
         
]]></description><category></category></item><item><title><![CDATA[shiro学习笔记——从源码角度分析shiro身份验证过程]]></title><link>https://blog.youkuaiyun.com/xiaoy81/article/details/43408351</link><guid>https://blog.youkuaiyun.com/xiaoy81/article/details/43408351</guid><author>xiaoy81</author><pubDate>Mon, 02 Feb 2015 14:47:08 +0800</pubDate><description><![CDATA[前言：本文大部分是原创，自己一点点看源码抠出来的，都是自己的理解，技术有限，有不对的地方还请大家指正。文中引用了大量的源码，自己加的注释，可以从头看出整个的验证过程，方便在各个地方自定义扩展，类关系图不画了，大家凑合看~


正文：

public interface SecurityManager
extends Authenticator, Authorizer, SessionM]]></description><category></category></item></channel></rss>