![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术总结
文章平均质量分 64
大朝书房
保持简单,纯粹,微信号:cosysun
展开
-
Golang的内存分配make,new详解
Golang的内存分配make,new详解Golang内存分配主要有三种方式:new,make,以及大括号({})。常常在使用上容易混乱,弄不清楚。New采用New返回的是一个指针,即指向一个被初始化为0值得地址。p := new(int) // p is a address that point to value of int, value is zeroedp 是一个指针,指向一个类型为int的并被初始化为0的值。type SyncedBuffer struct { lock原创 2021-05-10 11:42:04 · 1587 阅读 · 0 评论 -
Golang中的Interface详解
Golang中的Interface详解InterfaceInterfaces in Go provide a way to specify the behavior of an object这是"Effective go" 中对interface的定义。Golang的多态是根据duck typing(你看着像,我就认为你是)的方式来实现。举个例子:func main() { fishObj := new(fish) dogObj := new(dog) var duckObj duck =原创 2021-05-08 16:22:35 · 1340 阅读 · 0 评论 -
gcc/g++ 常用编译指令
一、简单编译#include <stdio.h>int main(int argc, char* argv[]){ printf("test\n"); return 0;}g++ main.cpp -o main二、链接相关库#include <stdio.h>#include <stdint.h>#include <stdlib.h> #include <string>#in原创 2020-06-30 15:59:49 · 701 阅读 · 0 评论 -
密码学知识入门
一、安全问题出现现在越来越多的人利用互联网支付,转账等功能,方便之余,难免会心生疑问,账号会不会被人盗取?这就对数据安全提出了挑战,为了解决这个问题,数据的加密就显得异常重要了。二、基本概念加解密的过程就是发送方将明文通过密钥计算变成密文,接收方再将密文通过密钥计算变成可明文,从而保证在信息传输过程中的具备:可鉴别,完整,防泄漏。可鉴别:通过验证签名的方式,可以知道发送消息的人是否是可信赖的对方原创 2018-02-25 16:46:20 · 2461 阅读 · 0 评论 -
通用高性能服务框架解析
做了多年的后台服务,一直想将自己这么多年对高性能服务架构的一些粗浅认识写出来,一方面对自己这个阶段成长做个总结, 另一方面想通过这个与各位做一个交流,妄不吝赐教。一、最初对服务架构的概念最初接触服务端程序应该是2011年,当初基于服务架构的概念是基于这样一个模型这是最简单的一种C/S模型结构,客户端直接连接服务端,只能适用于对效率、并发量、扩展性要求低的环境,所以当请求量逐渐上原创 2015-03-05 10:11:55 · 2237 阅读 · 0 评论 -
FastDFS客户端(Python版)指南
最近做了一个分布式的项目用到了FastDFS,关于FastDFS这里就不阐述了,有兴趣了解的小伙伴,请到官网:http://bbs.chinaunix.net/forum-240-1.html。这里着重介绍FastDFS客户端(Python版),此版客户端已经用于实际项目,目前运行稳定。项目托管于git,地址:https://github.com/cosysun/FastDFSClient_Pyt...原创 2015-03-04 11:24:00 · 13297 阅读 · 8 评论 -
关于C++的一个栈空间被占用问题的总结
一、事情起因一条线程调用了Map 的一个erase方法 结果dump了二、原因假设1、Map中的的数据被其他线程释放了,通过find验证了一下,不可能,数据还在,活生生的2、Map中的数据被覆盖了或者被改写了 分析结果:看了一下数据,都没错,字节也都对齐3、通过单步调试发现,在STL内部调用结尾释放指针是,所指的地址出现异常,正常情况原创 2014-04-26 21:22:55 · 1949 阅读 · 0 评论 -
Vim+Ctags+TagList+WinManager+pydiction打造属于自己编译器(一)
来源:http://www.cosysun.com/?p=126在Linux下开发python,一定有一款编译利器,毫无疑问,选择了Vim,但是单纯的Vim是无法满足我们的需求的,本系列将陆续介绍几种常用的插件,来打造一款强悍的编译器。 Exuberant Cta原创 2011-08-26 22:33:23 · 2305 阅读 · 0 评论 -
生产者消费者模式浅析
由于最近工作中,涉及到生产者消费者设计模式,对此有一些体会,所以总结一下,与大家分享。什么是生产者消费者模式在工作中,大家可能会碰到这样一种情况:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为原创 2011-07-15 23:30:09 · 20223 阅读 · 5 评论 -
阻塞、非阻塞、同步、异步浅析
在网络编程中,我们经常会遇到阻塞、非阻塞、同步、异步这两组概念,许多人很容易混淆,现在就给大伙儿说说我对着两组概念的理解。先说说阻塞与非阻塞,这主要和程序等待消息时的状态有关1、阻塞程序会阻塞在某一个函数,而不往下执行,就如挂在那里一样,所有的其他业务也都不执行,为一直等到消息到原创 2011-07-14 21:50:05 · 1790 阅读 · 1 评论 -
如何提升服务器系统性能
众所周知,在服务器系统的开发上,对性能要求是很高的,特别在大批量并发中,服务器系统的性能就体现的尤为重要,常常会有人问:为啥我的CPU消耗那么大,为啥我的事务处理那么慢,执行效率无法提高等等此类的问题。那怎么提高系统的性能呢,联系目前的工作,对此谈谈看法。1、服务器系统架构的不合原创 2011-07-13 21:34:44 · 1793 阅读 · 0 评论 -
转载:RO段、RW段和ZI段
原创 2009-05-22 22:37:00 · 756 阅读 · 0 评论 -
enum
原创 2009-05-22 22:01:00 · 535 阅读 · 0 评论 -
Qt学习之路(1):前言(转载)
Qt是一个著名的C++库——或许并不能说这只是一个GUI库,因为Qt十分庞大,并不仅仅是GUI。使用Qt,在一定程序上你获得的是一个“一站式”的服务:不再需要研究STL,不再需要C++的,因为Qt有它自己的QString等等。或许这样说很偏激,但Qt确实是一个“伟大的C++库”。我们所使用的Qt,确切地说也就是它的GUI编程部分。C++的GUI编程同Java不同:GUI并不是C++标准的一部分。所以,如果使用Java,那么你最好的选择就是AWT/Swing,或者也可以使SWT/JFace,但是,转载 2010-11-27 12:18:00 · 755 阅读 · 0 评论 -
VC/MFC(C++)实现文件拷贝和文件删除等
<br />1、文件拷贝<br />/////////////////////////////////<br />//MFC版 文件拷贝<br />/////////////////////////////////<br />void FileCopyTo(CString source, CString destination, CString searchStr, BOOL cover = TRUE)<br />{<br />CString strSourcePath = source转载 2010-11-12 10:45:00 · 1061 阅读 · 0 评论 -
使用C语言获取文件夹地址的方法收藏
<br />使用C语言获取文件夹地址的方法收藏<br /> <br />#include <stdio.h><br />#include <stdlib.h><br />#include <shlobj.h><br />void main(int argc, char* argv[])<br />{<br /> TCHAR szPath[MAX_PATH];<br /> if(SUCCEEDED(SHGetFolderPath(NULL, <br /> CSIDL_COMMON_ADMINTOOLS|C转载 2010-09-09 12:42:00 · 1631 阅读 · 0 评论 -
获取并修改文件时间
<br /> 在Windows操作系统下并没有提供任何可供修改文件夹时间属性的方法和手段,即使是在Win32 API函数中,也只是提供了对文件时间属性进行修改的函数调用,而没有关于文件夹时间属性修改的只言片语。虽然Windows所提供的备份程序能够把待备份文件夹下的所有子文件夹的时间属性按照原样完整的复制过去,但是却无法保持根目录时间属性的恒定。由此,可以考虑采取备份的方式来进行,并从同备份相关的Win32 API函数入手。具体而言,可以先以打开文件的方式来打开文件夹,然后就可以通过原本用于处理文件转载 2010-08-27 17:08:00 · 3349 阅读 · 0 评论 -
DoModal失败原因
<br /><br /> <br />转自:http://hi.baidu.com/samzyn/blog/item/b712739b6f7e56b2c9eaf417.html<br />DoModal失败原因<br />1、MFC<br />通常对话框不显示的原因有<br />1 父窗口HWND无效<br />2 在ONINITDIALOG里用了ENDDIALOG<br />3 无效的对话框资源ID<br />4 使用没有注册的的自定义控件<br />5 对话框的某些控件创建失败,如RICHEDIT,要加转载 2010-07-22 10:01:00 · 9138 阅读 · 1 评论 -
SQLite数据库使用总结
<br />SQLite 是一个小巧的开源数据库,主要应用于嵌入式移动设备。<br /><br />一、 下载 SQLite3 包<br /><br /> 大家可以到SQLite的官方网站去下载,使用各种系统的SQLite的版本,下载地址为:http://www.sqlite.org/<br /><br />二、 编译生成 Lib 文件<br /><br /> 启动一个命令行,进入 VC 的安装目录,如 C:/Microsoft Visual Studio/VC98/Bin 在这个目录下原创 2010-06-23 20:47:00 · 3550 阅读 · 2 评论 -
C++笔记1
1.覆盖(override)只要子类中有成员函数名与父类的相同,称为覆盖,与返回类型和参数列表无关。 2.重载(overload)同一类中函数名相同但参数列表不同 3.继承子类从父类中继承 需注意以下几点:(1). 构造函数的顺序是先父类后子类,析构函数的顺序是先子类后父类(2). 在父类中自定义了构造函数,也必须在子类中定义构造函数。因为如果此时父类无默原创 2010-04-22 18:46:00 · 581 阅读 · 0 评论 -
一个数据库操作类,适用于Oracle,ACCESS,SQLSERVER
最近做了一个数据诊断的项目,里面自己写了一个数据库的操作类,包含:连接数据库、读数据表、执行SQL操作,释放数据库等组成,希望对大家有用,由于水平有限,若有错误或者代码不足地方欢迎指正,谢谢。ADOOperate.H//////////////////////////////////////////////////////////////////////// 类功能:用于数据原创 2010-04-22 17:34:00 · 1909 阅读 · 0 评论 -
VC++与VB数据类型对应关系
<!-- /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-a原创 2010-04-13 12:58:00 · 2155 阅读 · 0 评论 -
VB调用VC dll的返回方式
第一种类型:数值传递 注意:在VB中,默认变量传递方式为ByRef为地址,而传递值就是用ByVal,还要注意在C++中,int类型的变量是32位的,在VB中要用long型变量来配合。VC++部分:extern "C" _declspec(dllexport) int __stdcall TestCalc(int source){ //AFX_MANAGE_STATE(AfxG原创 2010-03-24 21:14:00 · 7201 阅读 · 1 评论 -
AIS数据分析详解
想必大家在刚接触AIS时,对AIS数据的解码感到困惑,其是采用6位ASCII压缩码传输的,所以对AIS数据的正确解析,就是完成任务的关键所在。通过最近的一个项目,了解了AIS数据的解码分析过程,现将其流程和相关代码列出,此参表可以参见快乐鹦鹉的AIS解码算法一文http://blog.csdn.net/happyparrot/archive/2007/04/26/1585185.asp原创 2010-03-19 12:44:00 · 32374 阅读 · 32 评论 -
VC++,掀起你的盖头来 ——谈VC++对象模型
VC++,掀起你的盖头来——谈VC++对象模型(美)简 格雷程化 译译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。Inside the C++ Object Model虽然是一本好书,然而,书的篇幅多一些,又和具体的VC++关系小一些。因此,从转载 2010-03-08 14:17:00 · 793 阅读 · 0 评论 -
VC基础学习:初学者指针指南
出处:http://www.codeproject.com/cpp/pointers.asp 作者:不祥 何为指针? 指针基本上和其它的变量一样,唯一的一点不同就是指针并不包含实际的数据,而是包含了一个指向内存位置的地址,你可以在这个地址找到某些信息。这是一个很重要的概念,并且许多程序或者思想都是将指针作为它们的设计基础,例如链表。 开始 如何定义一个指针转载 2010-03-08 11:07:00 · 771 阅读 · 0 评论 -
十六进制、BCD码与十进制之间的转换
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object class原创 2010-03-05 17:28:00 · 19398 阅读 · 3 评论 -
关于win32 dll 的相关知识总结
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Sty原创 2010-03-05 17:22:00 · 956 阅读 · 0 评论 -
VC之美化界面篇
白乔原创:VC之美化界面篇转载地址:http://www.vcer.net/showTip.jsp?tipid=10465954826431. 美化界面之开题篇相信使用过《金山毒霸》、《瑞星杀毒》软件的读者应该还记得它们的精美界面: 图1 瑞星杀毒软件的精美界面程序的功能如何如何强大是一回事,它的用户界面则是另一回事。千万不要忽视程序的用户界面,因转载 2010-03-02 10:58:00 · 644 阅读 · 0 评论 -
关于VC++动态链接库的相关知识
1、导入DLL (1). 静态导入 #pragma comment(lib,"*.lib") extern +函数;/ 或者 _declspec(dllimport) + 函数(2).动态导入 HINSTANCE hDll; hDll = LoadLibrary("*.dll"); // 动态加载DLL typedef原创 2009-12-22 18:50:00 · 698 阅读 · 0 评论 -
Java中使用PB教程
前言之前在写Netty的时候,说过要写一篇关于PB的应用,所以现在兑现承诺。在应用的过程中,发现了很多问题,本文主要介绍两个最关键的问题。PB如何与java项目融合,自动刷新编译,以及pb文件如何与其他项目共用,互不影响。java中如何实现pb的Extension概述ProtocolBuff 是 google 提出的的一种数据交换格式,跨语言,跨平台,可扩展。基于这种特性原创 2017-09-29 11:13:15 · 8835 阅读 · 0 评论 -
带你玩转Netty(二)
概述上篇给大家介绍了 Netty 的基本原理,这次主要给大家讲一下具体怎么用 Netty,主要分成两个方面客户端以及服务端实现原创 2017-08-05 18:50:20 · 499 阅读 · 0 评论 -
Java的一些概念整理
一、关于Servlet简单点说 其实就是一个WEB服务端处理客户端请求的中间层接口。二、关于线程1、一般集成runnable or thread2、线程同步采用 synchronized三、关于异常java 提供许多异常类,具体查阅相关资料,这里要注意有以下几点1、try块最好针对异常模块,不要盲目大块2、尽量使用finally处理资源释放3、异原创 2015-06-22 14:44:54 · 967 阅读 · 0 评论 -
Vim使用XDebug支持Php调试
一、原理Php调试的方式有很多,最常用的就是通过打印来解决,打印带来的缺陷也比较明显,就是不够直观,而且繁琐,打的不准的话,会浪费很多时间,所以这里给大家介绍一种常用调试方式,利用xdebug来实现,这次我们将和Vim结合,具体原理如下:二、xdebug安装配置1、为php安装xdebug.so扩展wget https://xdebug.org/files/xdebug-2.5.4.tgztar...原创 2018-02-26 10:14:46 · 436 阅读 · 0 评论 -
Vim教程之终极篇
大家周末快乐,通过前两篇的学习,多加练习,大家应该可以对vim游刃有余,不过它还是一个文本编辑器,对于编码而已,还差点作料,这篇文章就教你打造属于你的IDE。先上一张图:插件管理Vundlevim最强大的地方就是插件,不过在使用插件同时,如何更好的安装,移除,跨机器迁移插件呢,特别是跨机器,之前很多同事,都是将Vim下面的所有插件,打包导出拷贝,相当麻烦,所原创 2017-06-24 10:53:59 · 336 阅读 · 0 评论 -
Vim教程之进阶
前文给大家介绍了Vim的必须知道的基本用法,这篇主要给大家介绍一下常用的利器,让你用起来倍感顺畅。选择相关逐字/块选择: + 方向键(←↓↑→)逐行选择:V + 上下方向键(↓↑)排版相关快速对齐:采用逐行选择,选择你要对齐的行,然后 按下 =,具体指令如下:V原创 2017-06-19 10:55:20 · 372 阅读 · 0 评论 -
Vim教程之入门
前言今天正式开始我们《玩转Vim》知识分享,预计分成三个部分:Vim入门,Vim进阶,Vim实战,本人日常的开发,都是用Vim进行的,深深体会到Vim的便捷,所谓神器再说,天下我有。Vim历史80年代末,布莱姆·米勒从一个开源的vi复制Stevie开始,开发了Vim的1.0版本,完全复制了vi,那个时候的Vim是Vi IMitation(模拟)的简称。原创 2017-06-15 10:00:39 · 427 阅读 · 0 评论 -
带你玩转Netty(一)
netty 其实就是基于事件驱动,快速开发高并发,高可靠性的服务和客户端的一个开源框架原创 2017-07-23 10:21:33 · 959 阅读 · 0 评论 -
带你玩转Netty(三)之WebSocket
摘要前面两篇文章分别给大家介绍了原理篇,应用篇,这回给大家介绍WebSocket在Netty中的应用。什么是WebSocket传统的Http协议只能客户端发起通信,而不能做到服务端主动通知。这里可能有人说可以采用long polling,也就是客户端不断的向服务端请求,获取新数据,虽然能解决问题,但效率低下,浪费资源,只能说是笨办法。所以WebSocket就出现了。webSocket协议是2原创 2017-08-20 20:29:51 · 8801 阅读 · 1 评论 -
python多环境指南
在开发python时,时常会碰到版本问题,不过好在python在解决这个问题上,有一套简单易行的办法,那就是pyenv + virtualenv,今天就介绍给大家,下面都是在centos系统下进行的。概念pyenv:简单说是管理python版本的,可以实现一台机器轻松装多个版本,并且可以在各个版本之间自由切换。 virtualenv:在某个python版本下,分割出不同的第三方依赖库。保证各个环境原创 2017-12-14 18:17:07 · 442 阅读 · 0 评论