<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/gexiao</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; gexiao]]></copyright><item><title><![CDATA[深入浅出golang的chan]]></title><link>https://blog.csdn.net/gexiao/article/details/107590128</link><guid>https://blog.csdn.net/gexiao/article/details/107590128</guid><author>gexiao</author><pubDate>Sun, 26 Jul 2020 10:32:43 +0800</pubDate><description><![CDATA[记得大学刚毕业那年看了侯俊杰的《深入浅出MFC》，就对深入浅出这四个字特别偏好，并且成为了自己对技术的要求标准——对于技术的理解要足够的深刻以至于可以用很浅显的道理给别人讲明白。以下内容为个人见解，如有雷同，纯属巧合，如有错误，烦请指正。

今天，我们聊一聊go语言中chan，在开始我们话题之前，我们先看看官方对于chan的介绍（其中斜体为原文拷贝，没有任何加工）:

A channel provides a mechanism forconcurrently executing functionsto..]]></description><category></category></item><item><title><![CDATA[golang的chan有趣用法]]></title><link>https://blog.csdn.net/gexiao/article/details/107590089</link><guid>https://blog.csdn.net/gexiao/article/details/107590089</guid><author>gexiao</author><pubDate>Sun, 26 Jul 2020 10:30:38 +0800</pubDate><description><![CDATA[https://blog.csdn.net/weixin_42663840/article/details/81743709

写这个博客的背景是我面试一家公司，这家公司的CTO给我出了一道我认为挺有意思的题，题的大概是这样的：

// 抽象一个栅栏
type Barrier interface {
  Wait ()
}
// 创建栅栏对象
func NewBarrier (n int) Barrier {
 
}
// 栅栏的实现类
type barrier struct {

}
// 测试...]]></description><category></category></item><item><title><![CDATA[c++11多线程中的std::async异步函数]]></title><link>https://blog.csdn.net/gexiao/article/details/104712319</link><guid>https://blog.csdn.net/gexiao/article/details/104712319</guid><author>gexiao</author><pubDate>Sat, 07 Mar 2020 11:59:50 +0800</pubDate><description><![CDATA[https://blog.csdn.net/li1615882553/article/details/86252813



目录

写在前面

解析

future类成员函数

wait_for以及wait_until返回值类型

get函数

valid函数

wait_for函数

std::launch类型

参考博客

写在前面
如果有一个需要长时间运算的线程，需要计算出最终的有效值，...]]></description><category></category></item><item><title><![CDATA[inode 详解]]></title><link>https://blog.csdn.net/gexiao/article/details/52756058</link><guid>https://blog.csdn.net/gexiao/article/details/52756058</guid><author>gexiao</author><pubDate>Sat, 08 Oct 2016 13:59:02 +0800</pubDate><description><![CDATA[http://www.linuxidc.com/Linux/2014-09/106457.htm]]></description><category></category></item><item><title><![CDATA[修改root密码出错，文件系统变成只读]]></title><link>https://blog.csdn.net/gexiao/article/details/52453264</link><guid>https://blog.csdn.net/gexiao/article/details/52453264</guid><author>gexiao</author><pubDate>Tue, 06 Sep 2016 20:33:27 +0800</pubDate><description><![CDATA[给passwd文件加权限，修改/etc/passwd目录下所有的文件夹属性为可写可读可执行，执行以下命令：chomd 777 /etc/passwd

的时候提示错误：

chmod: changing permissions of ‘/etc/passwd': Read-only file system






解决方法：





产生这个问题的原因是文件]]></description><category></category></item><item><title><![CDATA[C++对象的内存分布和虚函数表]]></title><link>https://blog.csdn.net/gexiao/article/details/51377354</link><guid>https://blog.csdn.net/gexiao/article/details/51377354</guid><author>gexiao</author><pubDate>Wed, 11 May 2016 18:50:05 +0800</pubDate><description><![CDATA[C++对象的内存分布和虚函数表
 
(2010-07-25 20:54:55)
转载▼






标签： 

教育


 






c++中一个类中无非有四种成员：静态数据成员和非静态数据成员，静态函数和非静态函数。

    1.非静态数据成员被放在每一个对象体内作为对象专有的数据成员。
    2.静态数据成员被提取出来放在程序的静态数据]]></description><category></category></item><item><title><![CDATA[抢占式内核与非抢占式内核]]></title><link>https://blog.csdn.net/gexiao/article/details/51142334</link><guid>https://blog.csdn.net/gexiao/article/details/51142334</guid><author>gexiao</author><pubDate>Wed, 13 Apr 2016 13:02:01 +0800</pubDate><description><![CDATA[抢占式内核与非抢占式内核
linux抢占式内核与实时系统的关系

一个好的系统的进程调度机制，要兼顾三种不同的应用的需求：
1交互式应用。这种应用，着重于系统的响应速度，当系统中有大量的进程共存时（多用户），要保证每个用户都有可以接受的响应速度，而不感到明显的延迟。当延迟超过150毫秒时，使用者会明显地感觉到。
2.批处理应用。批处理的应用往往都是“后台作业”，对响应速度没有要求，但要考]]></description><category></category></item><item><title><![CDATA[共享内存的特殊文件系统]]></title><link>https://blog.csdn.net/gexiao/article/details/51112533</link><guid>https://blog.csdn.net/gexiao/article/details/51112533</guid><author>gexiao</author><pubDate>Sun, 10 Apr 2016 13:49:54 +0800</pubDate><description><![CDATA[这个特殊的文件系统是基于Ram的。 shmget会在这个特殊的文件系统上创建一个文件，shmat会调用mmap把这个文件映射到进程的地址空间中。





内核怎样保证各个进程寻址到同一个共享内存区域的内存页面

1、page cache及swap cache中页面的区分：一个被访问文件的物理页面都驻留在page cache或swap cache中，一个页面的所有信息由struct]]></description><category></category></item><item><title><![CDATA[sendfile优化文件拷贝]]></title><link>https://blog.csdn.net/gexiao/article/details/50722537</link><guid>https://blog.csdn.net/gexiao/article/details/50722537</guid><author>gexiao</author><pubDate>Tue, 23 Feb 2016 13:44:47 +0800</pubDate><description><![CDATA[原文地址：http://www.vpsee.com/2009/07/linux-sendfile-improve-performance/

现在流行的 web 服务器里面都提供 sendfile 选项用来提高服务器性能，那到底 sendfile 是什么，怎么影响性能的呢？sendfile 实际上是 Linux 2.0+ 以后的推出的一个系统调用，web 服务器可以通过调整自身的配置来决定是否]]></description><category></category></item><item><title><![CDATA[TCP_NODELAY与TCP_CORK]]></title><link>https://blog.csdn.net/gexiao/article/details/50722431</link><guid>https://blog.csdn.net/gexiao/article/details/50722431</guid><author>gexiao</author><pubDate>Tue, 23 Feb 2016 13:30:25 +0800</pubDate><description><![CDATA[版权声明：本文为博主原创文章，未经博主允许不得转载。



TCP_NODELAY



默认情况下，发送数据采用Nagle 算法。这样虽然提高了网络吞吐量，但是实时性却降低了，在一些交互性很强的应用程序来说是不允许的，使用TCP_NODELAY选项可以禁止Nagle 算法。

此时，应用程序向内核递交的每个数据包都会立即发送出去。需要注意的是，虽然禁止了Nagle 算法，但网]]></description><category></category></item><item><title><![CDATA[实例浅析epoll的水平触发和边缘触发，以及边缘触发为什么要使用非阻塞IO]]></title><link>https://blog.csdn.net/gexiao/article/details/50512569</link><guid>https://blog.csdn.net/gexiao/article/details/50512569</guid><author>gexiao</author><pubDate>Wed, 13 Jan 2016 18:40:35 +0800</pubDate><description><![CDATA[http://www.tuicool.com/articles/VvU7fum


一.基本概念                                                         

我们通俗一点讲：

Level_triggered(水平触发) ：当被监控的文件描述符上有可读写事件发生时，epoll_wait()会通知处理程序去读写。如果这次没有把数据]]></description><category></category></item><item><title><![CDATA[listen()的backlog参数和未完成队列、已完成队列的关系]]></title><link>https://blog.csdn.net/gexiao/article/details/50512476</link><guid>https://blog.csdn.net/gexiao/article/details/50512476</guid><author>gexiao</author><pubDate>Wed, 13 Jan 2016 18:22:11 +0800</pubDate><description><![CDATA[http://blog.chinaunix.net/uid-24782829-id-3456109.html



    listen函数是网络编程一个基本的函数，而且它的backlog参数却是和TCP协议息息相关的。我们来看一下一个backlog参数到底有多少秘密。


一、   为了理解backlog参数，我们必须首先认识listen函数。



点击(此处)折叠或打开]]></description><category></category></item><item><title><![CDATA[Boost.Bind用法详解]]></title><link>https://blog.csdn.net/gexiao/article/details/50420097</link><guid>https://blog.csdn.net/gexiao/article/details/50420097</guid><author>gexiao</author><pubDate>Mon, 28 Dec 2015 17:02:37 +0800</pubDate><description><![CDATA[Boost.Bind用法详解（一）  

2008-05-09 15:50:50|  分类： C++|举报|字号 订阅


    























下载LOFTER客户端







Boost.Bind 为函数和函数对象提供了一致的语法，对于值语义和指针语义也一样。我们将从一些简单的例子开]]></description><category></category></item><item><title><![CDATA[skipList]]></title><link>https://blog.csdn.net/gexiao/article/details/50316313</link><guid>https://blog.csdn.net/gexiao/article/details/50316313</guid><author>gexiao</author><pubDate>Tue, 15 Dec 2015 15:44:10 +0800</pubDate><description><![CDATA[http://blog.csdn.net/qq575787460/article/details/16898045











版权声明：本文为博主原创文章，未经博主允许不得转载。



如何在大量元素中去查找某个元素。例如在下面的“大量元素”的数组中




对于上面的情况无论是查找3还是查找8，只有一种办法，那就是遍历。时间复杂度是O(N)]]></description><category></category></item><item><title><![CDATA[LRU算法实现]]></title><link>https://blog.csdn.net/gexiao/article/details/50264325</link><guid>https://blog.csdn.net/gexiao/article/details/50264325</guid><author>gexiao</author><pubDate>Fri, 11 Dec 2015 15:25:55 +0800</pubDate><description><![CDATA[LRU Cache

题目链接：https://oj.leetcode.com/problems/lru-cache/

Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and set.

]]></description><category></category></item><item><title><![CDATA[GDB技巧整理]]></title><link>https://blog.csdn.net/gexiao/article/details/50039341</link><guid>https://blog.csdn.net/gexiao/article/details/50039341</guid><author>gexiao</author><pubDate>Wed, 25 Nov 2015 16:57:42 +0800</pubDate><description><![CDATA[﻿﻿
GDB技巧整理


整理常用的gdb技巧。
常用命令¶
常用的gdb命令...
启动gdb¶


直接运行

gdb --args prog arg1 arg2



运行gdb后使用run命令

gdb prog
run arg1 arg2



attach到已运行的程序

gdb --pid ${PID_OF_PROG}



ptyp]]></description><category></category></item><item><title><![CDATA[Centos devtoolset (compiling related)]]></title><link>https://blog.csdn.net/gexiao/article/details/50009547</link><guid>https://blog.csdn.net/gexiao/article/details/50009547</guid><author>gexiao</author><pubDate>Tue, 24 Nov 2015 10:53:01 +0800</pubDate><description><![CDATA[http://people.centos.org/




wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O
 /etc/yum.repos.d/devtools-2.repo




yum install devtoolset-2-gcc devtoolset-2-binutils devtoo]]></description><category></category></item><item><title><![CDATA[取得网卡的ip和mac地址]]></title><link>https://blog.csdn.net/gexiao/article/details/49247027</link><guid>https://blog.csdn.net/gexiao/article/details/49247027</guid><author>gexiao</author><pubDate>Mon, 19 Oct 2015 10:39:18 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 




#define MAXINTERFACES   16


int main (int argc, char **argv)
{


    int f]]></description><category></category></item><item><title><![CDATA[标准C++中的string类的用法总结]]></title><link>https://blog.csdn.net/gexiao/article/details/48976247</link><guid>https://blog.csdn.net/gexiao/article/details/48976247</guid><author>gexiao</author><pubDate>Thu, 08 Oct 2015 18:47:47 +0800</pubDate><description><![CDATA[标准C++中的string类的用法总结


相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧？的确，MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架，还有没有这样使用起来非常方便的类呢？答案是肯定的。也许有人会说，即使不用MFC框架，也可以想办法使用MFC中的API，具体的操作方法在本文最后给出操作方法。其实，可能很多人很可能会忽略掉标准C+]]></description><category></category></item><item><title><![CDATA[Multi-Threaded Libevent Server Example]]></title><link>https://blog.csdn.net/gexiao/article/details/43052227</link><guid>https://blog.csdn.net/gexiao/article/details/43052227</guid><author>gexiao</author><pubDate>Fri, 23 Jan 2015 11:30:12 +0800</pubDate><description><![CDATA[http://sourceforge.net/p/libevent-thread/code/ci/master/tree/]]></description><category></category></item></channel></rss>