- 博客(73)
- 资源 (35)
- 收藏
- 关注
原创 Redis使用单线程的原因
单线程指的是网络请求模块使用了一个线程(所以不需考虑并发安全性),即一个线程处理所有网络请求,其他模块仍用了多个线程。Redis快的主要原因是:1绝大部分请求是纯粹的内存操作(非常快速)2数据结构简单,对数据操作也简单3采用单线程,避免了不必要的上下文切换和竞争条件4非阻塞IO - IO多路复用IO多路复用:多路 I/O 复用模型是利用select、poll、epoll可以同时监察多...
2019-08-07 23:45:55 300
原创 twemproxy-内存管理机制
官方对内存管理方面介绍如下:在twemproxy中,请求进入和响应输出的所有内存都在mbuf中进行分配。mbuf启用零拷贝,因为客户端接收请求使用到的内存结构,后端服务器可以复用。同样,从服务器端接收响应时使用的mbuf,也可在客户端复用。此外,使用重用池管理mbuf的内存。这就是说:一旦分配了mbuf,它就不会被释放,而只是重新进入重用池。默认情况下,每个mbuf块的大小设置为16K。在mb...
2019-04-08 11:38:32 717
原创 内核-strcpy
看libc里面实现的strcpy说明一下,这个libc代码的来源貌似比较复杂,有来自BSD的,有来自GNU,还有一些其他的#define UNALIGNED(x,y) (((unsigned long)x & (sizeof (unsigned long)-1)) ^ ((unsigned long)y & (sizeof (unsigned long)-1)))#defin...
2019-04-08 11:34:20 542
原创 read()
read函数在用户空间是由read系统调用实现的,由编译器编译成软中断int 0x80来进入内核空间,然后在中端门上进入函数sys_read,从而进入内核空间执行read操作。sys_read函数定义在fs/read_write.c文件,定义如下asmlinkage ssize_t sys_read(unsigned int fd, char __user * buf, size_t cou...
2019-04-08 11:33:03 392
原创 linux内核相关-c字符数组底层处理
C语言中字符串结束符’\0’本质‘\0’就是8位的00000000,因为字符类型中并没有对应的这个字符,所以这么写。’\0’就是 字符串结束标志。'\0’是转义字符,意思是告诉编译器,这不是字符0,而是空字符。空字符\0对应的二进制为00000000,而数字0为00110000原来,在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串总是以’\0’作为串的结束符。因此...
2019-04-08 11:31:30 415
原创 twemproxy源码解析-前言:特性简介
下面是twemproxy的特性 后面根据这些特性做一些讲解:1.Fast,即快速,据测试,直连twenproxy和直连redis相比几乎没有性能损失,这已经很逆天了,最重要的是他还没有进行读写分离就能达到这样的效果,确实fast2.Lightweight,即轻量级,就我个人而言,它代码量就是轻量级的,解压后仅仅1.8MB!!!因为透明连接池,内存零拷贝以及epoll模型的使用,使得它足够快速...
2019-03-28 14:29:33 398
原创 twemproxy源码解析2 部分数据结构定义
在nc_mbuf.h里struct mbuf { uint32_t magic; /* mbuf magic (const) 这个值不是很理解是什么意思,一般是0xdeadbeef*/ STAILQ_ENTRY(mbuf) next; /* next mbuf 下一块mbuf,代码里所有的mbuf几乎都是以单向链表的形式存储的*/ uint8...
2019-03-27 18:55:18 202
原创 twemproxy源码解析1 源码文件总体简介
src/nc.c文件 是程序入口main函数所在,下面我给各个函数加了注释intmain(int argc, char **argv){ rstatus_t status; //rstatus_t 返回类型 struct instance nci;//nc实例 nc_set_default_options(&nci); //为nc实例设置一些默认的参数属性值...
2019-03-27 18:49:29 512 1
原创 MySQL去重语句
按照某个键值将最小ID创建新表储存:create table tmp_table as select min(id) from wp_posts group by post_title;然后将储存在tmp中的id与原表对照,将原表中不存在与tmp中的id删除:delete from wp_posts where id not in (select * from tmp_table);...
2019-01-09 21:24:52 1206
原创 新SQLAdvisor sql索引审核
https://github.com/nwsuafzq/SQLAdvisor 修复了部分bug;因为美团团队不对其进行维护了,现在准备寻找有识之士一起维护,详情加群
2018-12-21 17:48:59 355
转载 ajax post包含分号;带来的问题
前段时间在做无刷新提交评论时,遇到一个怪怪的问题一直无法解决,其实这个问题看起来很小,也就是在提交评论时,如果评论内容里面包括有;(分号) 时,哪么分号后面的内容将会无故的丢失。我当时的写法:$.ajax({url: ‘/user/post/comment/add/’,type: Componsents.Settings.AJAX_TYPE,data:‘id=’ + Post.setti...
2018-11-06 16:15:41 863
原创 Android Studio运行app时提示Please select Android SDK
从github clone 代码到本地放到AS后发现,发现并不能点“Run”键运行app,并报错Error:Please select Android SDK: 最后在File->Project Structure中将Build tools version修改,问题解决。 ...
2018-04-18 11:24:44 435
原创 Android Studio开发应用 手机桌面出现两个或多个图标
安装运行之后手机桌面出现两个ICON,首先查找的是不是自己的AndroidManifest中 多个Activity 注册了两个lancher所以桌面出现两个或多个 Icon肯定是 多个Activity添加了 android.intent.category.LAUNCHER 属性。除了自己的 AndroidManifest 还要排查引用的工程的 AndroidManifest。也就是多个A...
2018-04-18 11:23:45 1688
原创 linux/Mac下批量替换文件内容
grep -rl “str1” dir | xargs sed -i ‘s/str2/str3/g’ 意思就是把dir路径下面,还有子文件夹里面的所有包含‘str1’的文件里的‘str2’替换为‘str3’当str1和str2相同时,就是批量查找和替换了另外grep -rl “str1” dir 就是显示dir下所有包含str1字符串文件的路径 但是有时候上面提到的语句并不好...
2018-04-15 21:48:11 4505
原创 hashtable,concurrenthashmap为什么键和值不能为null,而hashmap可以?
因为hashtable,concurrenthashmap它们是用于多线程的,并发的 ,如果map.get(key)得到了null,不能判断到底是映射的value是null,还是因为没有找到对应的key而为空,而用于单线程状态的hashmap却可以用containKey(key) 去判断到底是否包含了这个null。hashtable为什么就不能containKey(key) 一个线程先get(ke
2017-08-30 12:09:38 11971 7
转载 objc[1183]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0
Mac版本IntelliJ Idea 2017.1在运行程序时,Console出现红色警告『objc[4163]: Class JavaLaunchHelper is implemented in both XXX』 [plain] view plain copy objc[4163]: Class JavaLaunchHelper is implemented in both /Library
2017-08-29 17:35:42 6179
转载 Hashtable和HashMap
HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java集
2017-07-16 11:43:42 324
原创 实现网页多人聊天室 Socket.IO
socket.io是个基于node.js的快平台实时通讯框架。只用不到10行代码,就可以搭建一个简单的多人实时聊天室。先来看看运行后的效果: socket.io多人聊天室 只要简单几步,就可以实现。在这里我们使用本机作为服务端。安装node.js由于socket.io使用node.js为服务端,所以必须安装node.jsNode.js 是一个基于 Chrome V8 引擎的 JavaScri
2017-06-30 17:50:20 2845
原创 Mybatis的一对一的关联映射 插入
Mybatis的一对一的关联映射 插入1.数据库脚本:CREATE TABLE `product` ( `id` int(10) NOT NULL AUTO_INCREMENT, `product_name` varchar(50) DEFAULT NULL, `description` varchar(50) DEFAULT NULL, `add_time` bigint(19)
2017-06-30 10:09:56 5305
原创 多线程同步 未完
synchonized关键字 当一个线程调用对象的一段synchonized代码是,需要先获取这个锁,然后去执行相应的代码,执行结束后,释放锁。 synchroniced方法。这个方法同一时刻只能被一个线程访问。 synchroniced块。任意代码段生命为synchroniced、也可以指定上锁的对象。wait()方法与notify()方法 在synchroniced代码被执行期间,线程
2017-06-30 09:57:24 252
原创 Mybatis 如何 返回 List<String> 类型 或 List<Map<String,Object>>类型
如果返回List<String>\List<XXX>,resultType="String"\"XXX"就可以了如果需要返回List<Map<String,Object>>,就需要自定义一个<result>
2017-06-26 15:59:11 10938
原创 线程类的run()与start()方法区别
系统通过调用start()方法来启动一个线程,此时该线程就处于就绪状态,而非运行状态,也就意味着这个线程可以呗JVM来调度执行。调度过程中JVM通过调用线程类的run()方法来完成实际的操作,当run()方法结束后,此线程就会终止。 直接调用run()方法,会被当作一个普通函数调用,程序中仍只有主线程这一个线程。也就是说,start()方法能异步地调用run()方法,但是直接调用run()方法却是
2017-06-24 22:20:08 386
原创 实现Java多线程
前两种最为常用1.继承Thread类,重写run()方法Thread本质上也是实现了Runnable接口的一个实例,它代表了一个线程的实例,启动线程的唯一方法是通过Thread类的start()方法。他是一个native本地方法,将启动一个新线程,并执行run()方法(Thread中提供的run()方法是一个空方法)。调用start()方法后并不是立即执行多线程代码,而是使得该线程变为可运行态,时候
2017-06-21 22:22:18 220
原创 值传递和引用传递
java中提供了两种参数传递的方法:值传递和引用传递。值传递方法调用中,实参会把它的值传给形参,形参只是用实参的值初始化一个临时的存储单元,因此形参与实参虽然有着相同的值,但却有着不同的存储单元,因此对形参的改变不会影响实参的值。引用传递传递的是对象,这时形参与实参的对象指向同一块存储单元,因此对形参的修改就会影响实参的值。基本类型和基本类型变量被当作参数传递给方法时,是值传递。在方法实体中,无法给
2017-06-19 20:38:11 331
转载 文件的上传和下载---学习笔记
文件的上传和下载---学习笔记2016-06-26 22:26 500人阅读 评论(0)收藏举报本文章已收录于:分类: java(74) 作者同类文章X版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]文件上传原理文件下载原理使用SmartUploa
2017-06-19 17:59:00 396
转载 怎么原样式转载其他人博客
怎么在csdn上原格式转载别人的文章标签: csdn 转载 文章 2017-03-15 20:14 74人阅读 评论(0)收藏举报本文章已收录于:分类: 工具类(13) 作者同类文章X转载于:http://blog.csdn.NET/mzpmzk/article/details/
2017-06-19 17:56:06 241
转载 解决eclipse中出现Resource is out of sync with the file system问题。
作者:reille 本博客网址:http://blog.csdn.net/reille/,转载本博客原创文章请注明出处。 本文内容概要: 解决eclipse中出现Resource is out of sync with the file system问题。 eclipse版本:eclipse SDK 3.7.0 ————————————————————————————————————————
2017-06-15 10:34:49 861 1
转载 Mybatis传多个参数(三种解决方案)
第一种方案 DAO层的函数方法 Public User selectUser(String name,String area);对应的Mapper.xml <select id="selectUser" resultMap="BaseResultMap"> select * from user_user_t where user_name = #{0} and user_area=
2017-06-14 16:45:22 851
原创 Java 线程安全
线程安全概念: 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。线程安全问题都是由全局变量及静态变量引起的。若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响
2017-06-12 10:44:29 206
原创 URI URL区别
URI—Universal Resource Identifier通用资源标志符Web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个来URI来定位的URI一般由三部组成 ①访问资源的命名机制 ②存放资源的主机名 ③资源自身的名称,由路径表示,着重强调于资源。URL—Uniform Resource Location统一资源定位符URL是Internet上用来描述信息资源的字符串
2017-06-08 16:56:10 347
转载 CentOS 下配置vsftpd,匿名可上传可下载
http://blog.csdn.net/zhoutong12589/article/details/8196499
2017-05-16 15:25:14 340
原创 CentOS6.5 上 DHCP 安装与配置
CentOS6.5 上 DHCP 安装与配置这里假定有两台机器,第一台dhcphost作为DHCP服务器,第二台机器clienthost用来测试DHCP服务。首先安装 dhcp 软件包sudo yum install dhcp编辑 dhcp 配置文件 /etc/dhcp/dhcpd.conf,可以参考 /usr/share/doc/dhcp-*/dhcpd.conf.sample,下面是我使用
2017-05-16 11:37:16 1999 3
转载 如何开启Centos6.4系统的SSH服务
http://jingyan.baidu.com/article/3ea51489f9efbf52e61bba05.html
2017-05-15 17:19:21 271
原创 消息中间件应用开发
消息中间件 双方使用不同队列进行发送接收消息 (1)实现界面化的聊天工具,支持二人之间互发消息。 (2)界面上必须标注软件版权信息,包括姓名、学号等个性化信息。 (3)发送消息过程中,发送这首先把消息发送到消息服务器ActiveMQ,接收者从消息服务器上取消息;消息发送者和接收者不需要同时运行(在线),实现即使对方处在离线状态下也可以进行消息的发送和接收。
2017-05-08 21:20:06 681
原创 doc转换markdown
https://word-to-markdown.herokuapp.com/ 在线转换,图片转换为base64编码,图片太多加载起来会慢 http://www.writage.com/ 这个软件下载下来还没试。
2017-04-09 16:09:26 772 1
转载 JMS Session session = connection.createSession(paramA,paramB) 两个参数不同组合下的含义和区别
session session = connection.createSession(paramA,paramB);paramA是设置事务,paramB是设置acknowledgment mode paramA 取值有:1、true:支持事务为true时:paramB的值忽略, acknowledgment mode被jms服务器设置为SESSION_TRANSACTED 。 2、false:不支
2017-04-09 14:00:34 724
原创 Java Swing设置图标Icon
正好这次实习要求有个要用swing做界面,于是重新拾起Swing了,发现好多都忘了。。。 现在貌似Swing用的人很少了。// 设置窗口图标 protected void setWindowIcon() { ImageIcon imageIcon = new ImageIcon(getClass().getResource(
2017-04-08 22:22:59 20349
原创 基于CORBA技术开发一个考试成绩查询系统
主要包括:服务器部分:实现查询和录入服务;客户端部分包括录入和查询部分IDL:interface DataService{ void insert(in string sid,in string sname,in float score); string check(in string sid);};用以下命令生成存根与框架:idlj -fall DataService.idl生
2017-04-02 17:08:39 1003
基于jsp论坛可发帖
2016-12-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人