<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ape79557的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ape79557</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ape79557]]></copyright><item><title><![CDATA[分布式锁   ----zookeeper实践  (排它锁)]]></title><link>https://blog.youkuaiyun.com/ape79557/article/details/101690135</link><guid>https://blog.youkuaiyun.com/ape79557/article/details/101690135</guid><author>ape79557</author><pubDate>Tue, 10 May 2016 09:18:00 +0800</pubDate><description><![CDATA[排它锁概念:
　　Exclusive Locks,被称为X锁,写锁,独占锁.如果事物T1对数据对象O1加上了排它锁,那么在整个加锁期间,只允许事务T1对O1进行读写操作,其他事务必须等到T1释放锁后才能进行操作.在单机环境中,JDK提供了synchronized关键字和ReentrantLock
重用锁来提供排它锁的功能.

zookeeper实现排它锁原理:
　　在需...]]></description><category></category></item><item><title><![CDATA[ElasticSearch   java客户端更新时出现的错误：NoNodeAvailableException[None of the configured nodes are available...]]></title><link>https://blog.youkuaiyun.com/ape79557/article/details/101690140</link><guid>https://blog.youkuaiyun.com/ape79557/article/details/101690140</guid><author>ape79557</author><pubDate>Sat, 30 Apr 2016 17:42:00 +0800</pubDate><description><![CDATA[下午尝试 用ElasticSearch的java客户端去做数据检索工作，测试了一下批量更新，代码如下：

public static void bulkUpdateGoods(List&lt;Goods&gt; goods) throws IOException, InterruptedException, ExecutionException {
        Client...]]></description><category></category></item><item><title><![CDATA[Java并发编程示例代码-----ReentrantLock]]></title><link>https://blog.youkuaiyun.com/ape79557/article/details/101690138</link><guid>https://blog.youkuaiyun.com/ape79557/article/details/101690138</guid><author>ape79557</author><pubDate>Mon, 25 Apr 2016 00:38:00 +0800</pubDate><description><![CDATA[public class ReenterLock implements Runnable{
    public static ReentrantLock lock=new ReentrantLock();
    public static int i=0;
    @Override
    public void run() {
        for(int j=0...]]></description><category></category></item><item><title><![CDATA[Java串口通信--------基于RXTX （附带资源地址）]]></title><link>https://blog.youkuaiyun.com/ape79557/article/details/101690134</link><guid>https://blog.youkuaiyun.com/ape79557/article/details/101690134</guid><author>ape79557</author><pubDate>Sun, 24 Apr 2016 21:44:00 +0800</pubDate><description><![CDATA[最近帮老师做了一个小项目，一个牧场公司想用传感器收集一些环境信息，记录到数据库里去，然后加以分析查看。这里面和传感器通信用到了串口通信，我也是接触了一下，把用到的东西分享出来。
准备工作：
　　RXTX：封装了Java对串口操作的类库，具体的话大家自己百度一下吧。资源地址：http://pan.baidu.com/s/1nuLZex7密码m358
　　VSPD（Virtu...]]></description><category></category></item><item><title><![CDATA[Concurrent初探 --- Atomic 无锁]]></title><link>https://blog.youkuaiyun.com/ape79557/article/details/101690137</link><guid>https://blog.youkuaiyun.com/ape79557/article/details/101690137</guid><author>ape79557</author><pubDate>Sun, 24 Apr 2016 11:03:00 +0800</pubDate><description><![CDATA[一.CAS算法
　　Compare And Swap,CAS算法的过程是这样：它包含3个参数CAS(V,E,N)。V表示要更新的变量，E表示预期值，N表示新值。仅当V值等于E值时，才会将V的值设为N，如果V值和E值不同，则说明已经有其他线程做了更新，则当前线程什么都不做。最后，CAS返回当前V的真实值。CAS操作是抱着乐观的态度进行的，它总是认为自己可以成功完成操作。当多个线程同时使用...]]></description><category></category></item><item><title><![CDATA[Java基本的线程操作(附代码)]]></title><link>https://blog.youkuaiyun.com/ape79557/article/details/101690136</link><guid>https://blog.youkuaiyun.com/ape79557/article/details/101690136</guid><author>ape79557</author><pubDate>Sun, 24 Apr 2016 10:31:00 +0800</pubDate><description><![CDATA[啦啦啦啦,从头整理一遍java并发的内容.开始是基本的线程操作

线程状态切换:


新建线程:
　　

@Test
    public void newTread(){
        Thread t1 = new Thread(new Runnable() {
            
            @Override
          ...]]></description><category></category></item><item><title><![CDATA[Thift初探 (一)]]></title><link>https://blog.youkuaiyun.com/ape79557/article/details/101690131</link><guid>https://blog.youkuaiyun.com/ape79557/article/details/101690131</guid><author>ape79557</author><pubDate>Sun, 17 Apr 2016 16:40:00 +0800</pubDate><description><![CDATA[Mavenpox.xml:

&lt;dependency&gt;
    &lt;groupId&gt;org.apache.thrift&lt;/groupId&gt;
    &lt;artifactId&gt;libthrift&lt;/artifactId&gt;
    &lt;version&gt;0.9.3&lt;/version&gt;
&lt;/depe...]]></description><category></category></item><item><title><![CDATA[分布式的一致性(分布式事物)-------2PC详述]]></title><link>https://blog.youkuaiyun.com/ape79557/article/details/101690133</link><guid>https://blog.youkuaiyun.com/ape79557/article/details/101690133</guid><author>ape79557</author><pubDate>Fri, 15 Apr 2016 10:48:00 +0800</pubDate><description><![CDATA[英文名:Two Phase Commit(2PC)
算法目的:实现分布式事物
算法概述:
　　有两类节点:
　　　　　-----协调者
　　　　　-----事务参与者
　　流程阶段:
　　　　　-----请求阶段
　　　　　-----提交阶段
　　

算法成立的前提条件:
　　1.存在一个协调者,其他节点为参与者,节点间使用网络通信
　　2.所有节点都采用预写...]]></description><category></category></item><item><title><![CDATA[好用的zookeeper客服端----Curator初探]]></title><link>https://blog.youkuaiyun.com/ape79557/article/details/101690129</link><guid>https://blog.youkuaiyun.com/ape79557/article/details/101690129</guid><author>ape79557</author><pubDate>Thu, 14 Apr 2016 19:36:00 +0800</pubDate><description><![CDATA[maven配置:
　　

&lt;dependency&gt;
        &lt;groupId&gt;org.apache.curator&lt;/groupId&gt;
        &lt;artifactId&gt;curator-framework&lt;/artifactId&gt;
        &lt;version&gt;2.6.0&lt;/ver...]]></description><category></category></item><item><title><![CDATA[GFS中元数据的管理]]></title><link>https://blog.youkuaiyun.com/ape79557/article/details/101690127</link><guid>https://blog.youkuaiyun.com/ape79557/article/details/101690127</guid><author>ape79557</author><pubDate>Wed, 13 Apr 2016 19:52:00 +0800</pubDate><description><![CDATA[GFS 元数据(metadata)中包含三部分:


GFS元数据的管理方式:
1.文件的命名空间和块的命名空间:
　　采用持久化的方式.
　　对于文件和块的命名空间以及从文件到块的映射:通过向操作日志登记修改而保持不变,操作日志存储在master的本地磁盘并在几个远程机器上留有副本,使用日志使得我们可以简单地,可靠地更新master状态.即使在master崩溃的情况下也不...]]></description><category></category></item><item><title><![CDATA[八十年代的经典 NFS和AFS]]></title><link>https://blog.youkuaiyun.com/ape79557/article/details/101690120</link><guid>https://blog.youkuaiyun.com/ape79557/article/details/101690120</guid><author>ape79557</author><pubDate>Tue, 12 Apr 2016 21:44:00 +0800</pubDate><description><![CDATA[NFS：（C/S模式）
大体架构：
　



　　1985年Sun公司基于UDP开发了网络共享文件系统（Network FileSystem）
　　NFS由一系列NFS命令和进程组成的客户机/服务器模式,在第三版中加入了基于TCP传输。
　　

AFS：
大体架构：


处理流程：


节点身份：
　　ptserver:负责用户和鉴权
　　...]]></description><category></category></item><item><title><![CDATA[二叉树非递归遍历]]></title><link>https://blog.youkuaiyun.com/ape79557/article/details/101690116</link><guid>https://blog.youkuaiyun.com/ape79557/article/details/101690116</guid><author>ape79557</author><pubDate>Sun, 10 Apr 2016 21:17:00 +0800</pubDate><description><![CDATA[非递归方式实现先序遍历
具体过程：
1.首先申请一个新的栈，记为stack。
2.然后将头节点head压入stack中。
3.每次从stack中弹出栈顶节点，记为cur，然后打印cur节点的值，如果cur右孩子不为空的话，将cur的右孩子先压入stack中。最后，如果cur的左孩子不为空的话，将cur的左孩子压入stack中。
4.不断重复步骤三，直到stack为空，全部过程结...]]></description><category></category></item><item><title><![CDATA[Java高并发下的 “单例模式”]]></title><link>https://blog.youkuaiyun.com/ape79557/article/details/101690115</link><guid>https://blog.youkuaiyun.com/ape79557/article/details/101690115</guid><author>ape79557</author><pubDate>Thu, 07 Apr 2016 19:21:00 +0800</pubDate><description><![CDATA[前言：单例模式大家应该很熟悉了，我在这里就自己总结一下自己这段时间学到的单例相关的知识。
单例模式的目的：保证一个类只有单一的实例，也就是说你无法通过new来创建这个类的一个新实例。
单例模式的意义：保证一个类只有单一的实例，也就是说你无法通过new来创建这个类的一个新实例。我们可以控制类对象的产生的数目。
单例模式使用场合：
使用单例的情况有3种： 1、类a从类b继承，这时a需...]]></description><category></category></item><item><title><![CDATA[Java并发概念-2]]></title><link>https://blog.youkuaiyun.com/ape79557/article/details/101690117</link><guid>https://blog.youkuaiyun.com/ape79557/article/details/101690117</guid><author>ape79557</author><pubDate>Wed, 06 Apr 2016 23:39:00 +0800</pubDate><description><![CDATA[一，死锁：
　　所谓死锁： 是指两个或两个以上的进程在执行过程中，由于竞争资源或者由于彼此通信而造成的一种阻塞的现象，若无外力作用，它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁，这些永远在互相等待的进程称为死锁进程。
　　
　　死锁的产生条件：　　　
　　1）互斥条件：指进程对所分配到的资源进行排它性使用，即在一段时间内某资源只由一个进程占用。如果此时还有其它进程...]]></description><category></category></item><item><title><![CDATA[Java并发概念-1]]></title><link>https://blog.youkuaiyun.com/ape79557/article/details/101690113</link><guid>https://blog.youkuaiyun.com/ape79557/article/details/101690113</guid><author>ape79557</author><pubDate>Wed, 06 Apr 2016 22:06:00 +0800</pubDate><description><![CDATA[一，同步 和 异步：
　　同步：调用方需要等待被调用方回应之后，才能进行下一步动作。
　　异步：调用方不需要等待被调用方回应，直接继续自己的动作。在未来某个时间点可能会有被调用方的回应。
　　
二，并发 和 并行
　　并行是指两个或者多个事件在同一时刻发生；而并发是指两个或多个事件在同一时间间隔内发生。
　　

三，临界区
　　每个进程中访问临界资源的那段代码称为临界...]]></description><category></category></item></channel></rss>