<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[DQwooo的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/DQwooo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; DQwooo]]></copyright><item><title><![CDATA[线程安全的Map----------ConcurrentHashMap(1.8)----------干戈的想法]]></title><link>https://blog.youkuaiyun.com/DQwooo/article/details/105074919</link><guid>https://blog.youkuaiyun.com/DQwooo/article/details/105074919</guid><author>DQwooo</author><pubDate>Wed, 25 Mar 2020 16:36:10 +0800</pubDate><description><![CDATA[文章目录ConcurrentHashMap成员存储一个节点putValue
ConcurrentHashMap
ConcurentHashMap大致构造与HashMap一样，都是数组 + 链表或者红黑树。但是HashMap是线程不安全的，ConcurrentHashMap是线程安全的。
现在我们来进一步了解它的工作原理。
成员
我们来了解几个成员。
// 这是map最大的容量
    privat...]]></description><category></category></item><item><title><![CDATA[LinkedList源码解析----------干戈的想法]]></title><link>https://blog.youkuaiyun.com/DQwooo/article/details/104975570</link><guid>https://blog.youkuaiyun.com/DQwooo/article/details/104975570</guid><author>DQwooo</author><pubDate>Fri, 20 Mar 2020 13:53:35 +0800</pubDate><description><![CDATA[文章目录LinkedList成员Node添加一个元素add方法
LinkedList
LinkedList与ArrayList一样都是线程不安全的。
ArrayList是数组形式的，而LinkedList是链表形式的，并且是不带头双向链表。
成员
// 链表存储元素的个数
    transient int size = 0;
    // 链表的头节点
    transient Node&lt...]]></description><category></category></item><item><title><![CDATA[LinkedBlockingQueue----------干戈的想法]]></title><link>https://blog.youkuaiyun.com/DQwooo/article/details/104963432</link><guid>https://blog.youkuaiyun.com/DQwooo/article/details/104963432</guid><author>DQwooo</author><pubDate>Thu, 19 Mar 2020 17:00:29 +0800</pubDate><description><![CDATA[文章目录LinkedBlockingQueue成员构造方法Node节点添加一个元素put(E e)方法offer(E e)删除一个元素take()poll()remove(Object o)
LinkedBlockingQueue
上次看了数组队列，这次来看链表形式的队列。
温馨提示：这个链表是单向的。
先来了解下类的成员
成员
	// capacity表示队列的大小
    private fi...]]></description><category></category></item><item><title><![CDATA[ArrayBlockingQueue源码解析----------干戈的想法]]></title><link>https://blog.youkuaiyun.com/DQwooo/article/details/104944667</link><guid>https://blog.youkuaiyun.com/DQwooo/article/details/104944667</guid><author>DQwooo</author><pubDate>Wed, 18 Mar 2020 17:33:04 +0800</pubDate><description><![CDATA[文章目录ArrayBlockingQueue成员构造函数添加一个元素add(E e) 方法和 offer(E e)方法put(E e)方法删除一个元素poll()take()
ArrayBlockingQueue
我们都知道这是一个队列，之前对这个类了解的不多，后来看了源码之后才发现与自己想的不一样。本文带大家了解ArrayBlockingQueue的工作原理。首先我们来了解这个类的成员们。
成员...]]></description><category></category></item><item><title><![CDATA[关于ArrayList和CopyOnWriteArrayList,线程不安全与安全----------干戈的想法]]></title><link>https://blog.youkuaiyun.com/DQwooo/article/details/104923433</link><guid>https://blog.youkuaiyun.com/DQwooo/article/details/104923433</guid><author>DQwooo</author><pubDate>Tue, 17 Mar 2020 18:20:26 +0800</pubDate><description><![CDATA[ArrayList类
关于这个类想必大家已经非常熟悉了，是我们编写代码的好帮手。今天我们来从源码的角度在深入熟悉我们的ArrayList.并且对比CopyOnWriteArrayList比较两者之间区别。首先我们先来看ArrayList。
ArrayList的构造函数
// 这是类的成员们
	// DEFAULT_CAPACITY这个是默认数组的大小。前提是我们并没有设置数组的长度
    pri...]]></description><category></category></item><item><title><![CDATA[线程池ThreadPoolExecutor工作原理----------干戈的想法]]></title><link>https://blog.youkuaiyun.com/DQwooo/article/details/104550089</link><guid>https://blog.youkuaiyun.com/DQwooo/article/details/104550089</guid><author>DQwooo</author><pubDate>Fri, 28 Feb 2020 20:50:31 +0800</pubDate><description><![CDATA[文章目录ThreadPoolExecutor线程池的组成worker类线程池工作原理源码execute方法addWorker方法runWorker方法getTask方法
ThreadPoolExecutor
优点：在某些应用场合下，我们会产生大量的线程，想必大家都遇到过。当时用的时候没怎么在意。看了线程池之后就觉得直接产生大量的线程，这种做法是不明智的。
在产生大量线程的情况下我推荐使用线程池，因...]]></description><category></category></item><item><title><![CDATA[关于HashMap中的红黑树----------干戈的想法]]></title><link>https://blog.youkuaiyun.com/DQwooo/article/details/104425581</link><guid>https://blog.youkuaiyun.com/DQwooo/article/details/104425581</guid><author>DQwooo</author><pubDate>Fri, 21 Feb 2020 20:19:05 +0800</pubDate><description><![CDATA[红黑树
接上篇hashmap的后续，关于红黑树的操作。

优点：红黑树查找方便，时间复杂度是树的高度。
红黑树的基本原理，大家应该都知道，我这里再写一遍：

树上的每个节点不是黑色就是红色
根节点是黑色
叶子节点是黑的
一个红色节点他的两个子节点都是黑的
任意一个节点到他叶子节点任意一条路包含的黑色节点数目是相同的。

来吧我们就来看看红黑树的形成与删除、左旋、右旋、查找。
基本结构
    st...]]></description><category></category></item><item><title><![CDATA[了解HashMap1.8源码----------干戈的想法]]></title><link>https://blog.youkuaiyun.com/DQwooo/article/details/104394868</link><guid>https://blog.youkuaiyun.com/DQwooo/article/details/104394868</guid><author>DQwooo</author><pubDate>Thu, 20 Feb 2020 20:31:23 +0800</pubDate><description><![CDATA[HashMap
这几天看了HashMap的源码，着重了解了HashMap的增加一个节点，删除一个节点这些工作原理。于是写下这个博文。
HashMap的基本信息
首先了解有关于HashMap的基本信息。
1.

...]]></description><category></category></item><item><title><![CDATA[关于多文件传输----------干戈的想法]]></title><link>https://blog.youkuaiyun.com/DQwooo/article/details/104262180</link><guid>https://blog.youkuaiyun.com/DQwooo/article/details/104262180</guid><author>DQwooo</author><pubDate>Wed, 12 Feb 2020 17:10:30 +0800</pubDate><description><![CDATA[多文件传输简介
解释：在编写多文件传输时，首先要明确我们多文件传输的目的，它的功能是什么。
当一个节点请求某一项资源时，不会是只有一个服务器向它发送资源，只要是拥有这个资源的节点就可以发送。每一个节点发送不同的部分。
优点：这样做大大降低了服务器的压力，不用多文件传输的话，常常一个服务器可能会不停的向节点发送资源。多文件的话会有别的节点帮助服务器一起发送，服务器甚至可以选择不参与发送节点。请求资源...]]></description><category></category></item><item><title><![CDATA[Spring IOC实现原理----------懒汉模式]]></title><link>https://blog.youkuaiyun.com/DQwooo/article/details/102094557</link><guid>https://blog.youkuaiyun.com/DQwooo/article/details/102094557</guid><author>DQwooo</author><pubDate>Sat, 05 Oct 2019 14:15:16 +0800</pubDate><description><![CDATA[原创文章
要实现Spring，我们要先知道这个工具是用来干什么的。Spring是提前实例化一个类的对象并保存起来，等到我们用的时候就可以直接调用把这个对象找出来直接用就好了。妈妈再也不用担心我忘记实例化对象。
我们采用的是懒汉模式，就是先将扫描到先放进去，并不注入，等我开始取对象的时候再开始注入。
既然要保存那么我们就需要建立一个工厂来保存。我用的是注解的方式，当然如果你喜欢XML文件的方式也是可...]]></description><category></category></item><item><title><![CDATA[分发器-----action与反射机制--------cs_framework------大青龙]]></title><link>https://blog.youkuaiyun.com/DQwooo/article/details/101615661</link><guid>https://blog.youkuaiyun.com/DQwooo/article/details/101615661</guid><author>DQwooo</author><pubDate>Sat, 28 Sep 2019 15:50:06 +0800</pubDate><description><![CDATA[本博客为原创
cs框架就是服务器和客户机之间用来信息的来往而制作的一套供外部（界面）使用的工具。cs框架一共有三层，加上界面就是四层。分为通信层（communication），会话层（conversation），服务器和客户端。
通信层用来做最基本的信息的往来，read和write；会话层有serverConversation和clientConversation，在这一层用来进行信息的具体操作（...]]></description><category></category></item><item><title><![CDATA[Java——锁与wait与notif——线程与线程的运行顺序]]></title><link>https://blog.youkuaiyun.com/DQwooo/article/details/101038068</link><guid>https://blog.youkuaiyun.com/DQwooo/article/details/101038068</guid><author>DQwooo</author><pubDate>Thu, 19 Sep 2019 22:36:33 +0800</pubDate><description><![CDATA[此博客为原创
浅浅了解了一下加锁时候的wait和notif与线程之间的运行顺序。今天写下来记录一下，若是有任何疑问可以提出来，大家一起讨论。
在两个不同的线程之间，存在着运行先后和协作的问题，假设一个线程启动了，另一个线程才能执行其他的代码。例如在cs_framework中的通信层的一段代码。


建立通信信道这是一个线程（我们暂称为次线程），它在构造函数中将被启动，而构造函数又属于另一个线程中的...]]></description><category></category></item></channel></rss>