自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

albon arith

一些总结,欢迎交流

  • 博客(243)
  • 资源 (13)
  • 收藏
  • 关注

原创 Java 线程同步基础类 LockSupport 解析

LockSupport 类提供了基本的线程同步原语,是实现 AbstractQueuedSynchronizer 和 ReentrantLock 的基础。

2017-09-12 21:13:30 889

原创 Java 同步框架 AQS 深入分析

AQS 框架提供了先进先出的阻塞锁实现,在此基础上,提供了独占和共享等多种模式供使用方实现。除此之外,还提供了一个条件变量的实现。锁是一种线程同步机制,用于保护对临界资源的访问。条件变量提供了一个“等待 - 唤醒”的机制,在阻塞队列里起到了生产者和消费者之间的通信的作用。

2017-09-12 09:14:33 787

原创 Java 同步原语 synchronized 剖析和锁优化

本文解析了 synchronized 的底层实现,介绍了 JVM 中优化锁的一些方法,以及实际编程中使用的一些锁优化方法。

2017-09-10 10:36:05 1118

原创 日志压缩资源消耗优化: Linux CGroup 的使用

我们有一个系统,本身压力比较大,平常 CPU 占用率在 60% 左右。在整点之后的日志压缩时,CPU 占用率更是飙到来 80%,造成系统 Load 经常报警,烦不胜烦。 使用 top 命令查看后发现,gzip 压缩进程占用 CPU 资源过多,于是想到了利用 CGroup 来限制日志压缩进程的资源占用。

2017-09-08 23:41:03 2076

原创 深度剖析 JDK7 ConcurrentHashMap 中的知识点

看源码时候的一点儿总结:锁分离 Lock Stripping、Unsafe、自旋、顺序一致性 Sequential Consistency、权衡 Trade Offs。

2017-09-05 20:49:25 706

原创 性能优化概述

如何做性能优化确定优化目标定位性能瓶颈制定优化方法测试优化效果性能优化目标是什么吞吐量,越大越好延时,越低越好同样的资源下(前提),吞吐量越高越好,响应时间越低越好。通俗的讲就是:多快好省。如何定位系统性能的瓶颈呢资源分析代码分析资源分析资源分析以对系统资源的分析为起点,涉及的系统资源有:CPU,内存,磁盘,网卡。通过对资源使用率的

2017-09-04 10:53:10 1926

原创 Hadoop Mapreduce Mapper和Reducer源码

Mapperpublic class Mapper { /** * The Context passed on to the {@link Mapper} implementations. */ public abstract class Context implements MapContext { } /** * Called once a

2014-01-08 10:20:05 1996

原创 叉积、线段相交判断、凸包

一、叉积叉积的计算是线段方法的核心。对于向来p1和p2,叉积是由点(0,0)、p1、p2和p1+p2构成的平行四边形的有向面积。另一种与之等价但更有效的的叉积定义方式是将其看做矩阵行列式:p1×p2 = x1y2 - x2y1 = - p2×p1若p1×p2为正,则相对于原点(0,0)来说,p1位于p2顺时针方向;若p1×p2为负,p1位于p2逆时针方向;若为0则方向相同,

2013-09-04 17:35:32 9370

转载 利用Java反射机制-访问Android隐藏API

通过类名获取类。Class serviceManager = Class.forName("android.os.ServiceManager");获取方法Method method = serviceManager.getMethod("getService", String.class);调用方法method.invoke(serviceManager.newIns

2013-07-26 21:18:21 4855

原创 Android:获取屏幕完整宽高,包含状态栏

WindowManager mWindowManager = (WindowManager) this .getSystemService(Context.WINDOW_SERVICE); Display mDisplay = mWindowManager.getDefaultDisplay(); DisplayMetrics mDisplayMetrics = new Displ

2013-05-13 21:24:31 3518

原创 Android NDK: 子线程中C调用Java

在底层c++生成的子线程中调用Java,需要JniEnv。而这个JniEnv的生成,需要用AttachCurrentThread方法。1. 获取JVM,以及静态方法实例static JavaVM* g_JavaVM = NULL;static jobject gInterfaceObject;​void initClassHelper(JNIEnv *e

2013-05-11 21:10:37 4013

原创 Ubuntu下安装Hadoop和配置Eclipse开发Hadoop

1. 安装hadoop具体见:http://www.cnblogs.com/tippoint/archive/2012/10/23/2735532.htmltips:不一定要新建hadoop用户,在当前用户下操作就行。运行hadoop自带的wordcount例子:http://wenku.baidu.com/view/17144225af45b307e8719785.htm

2013-01-04 10:04:35 2336 2

原创 重建二叉树

根据中序遍历和前序遍历重建二叉树,同时验证是否合法。#include #include using namespace std;#define TREELEN 6struct Node{ Node* pLeft; Node* pRight; char value;};Node* rebuild(char *preOrder, char *inOrder, int

2012-12-31 10:00:47 888

原创 算法题<度度熊就是要刷排名第一>

程序:/** * 度度熊就是要刷排名第一*/#include #include #include #include #include using namespace std;// 存放最大的两个int first=1, second=0;inline void compute(int &first, int &second, int &tmp){ if(

2012-06-03 20:48:34 2191

原创 算法题<度度熊就是要第一个出场>

题目来源:http://baidu.openjudge.org/round1a/A/题目图片:http://hiphotos.baidu.com/hustspy222/pic/item/8cf8441a95cad1c863b010807f3e6709c83d514e.jpg程序:/**度度熊就是要第一个出场 * 程序未检测输入数据的合法性 */#include

2012-06-03 10:42:13 1510

原创 C语言中的字符串分割函数

char *strtok(char *s, const char *delim);分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。从s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。#include #include int main(){ char str[100] = "optr=555&abcd=666 rrr";

2012-06-01 18:36:55 2824

原创 <Effective C++ : 构造/析构/赋值运算> 笔记

条款5:编译器可以暗自为class创建default构造函数、copy构造函数、copy assignment操作符,以及析构函数。不过,仅仅是需要的时候,编译器才自动生成。如遇到下面代码时NameClass A;    //defalut构造函数、析构函数NameClass B(A); //copy构造函数编译器才生成对应构造函数和析构函数。

2012-05-31 17:31:09 937

原创 <Effective C++: 资源管理> 笔记

条款13:为防止资源泄漏,请使用RAII对象,它们在构造函数中,获得资源并在析构函数中释放资源。两个常被使用的RAII对象分别是shared_ptr和auto_ptr。前者通常是较佳选择,因为其copy行为比较直观。若选择auto_ptr,复制动作会使它指向null。条款14:在资源管理类中,小心copying行为。复制RSII对象必须一并复制他所管理的资源,所

2012-05-31 17:30:23 794

原创 <Effective C++: 习惯C++> 笔记

条款01:视C++为一个语言联邦。C++目前是个多重范型编程语言,一个同时支持过程形式、面向对象形式、函数形式、范型形式、元编程形式的语言。总的来说,C++包含四种次语言。CObject-Oriented C++Template C++STL另外,还有boost库,包含了很多很多尚未加入标准的新特性。

2012-05-31 17:27:27 959

原创 Windows 多线程用法:_beginthreadex函数

#include #include #include using namespace std;int ThreadFunc1(void* param){ int i=*(int*)param; while(--i) { cout<<i<<endl; Sleep(2000); } return 0;}void ThreadFunc2(PVOID param)

2012-05-30 11:32:59 20675 2

原创 Windows RPC远程过程调用(2): 返回整数和整数数组

在 http://blog.csdn.net/hustspy1990/article/details/7608422基础上编写。1. 返回整数在idl文件中,添加函数,并用midl编译。void intAdd2([in]int x, [in]int y,[out]int* plus);在server代码中添加函数实现void intAdd2(

2012-05-28 17:14:37 2394

原创 Windows RPC远程过程调用(1): 最基本的

Windows本身支持成为一个RPC服务器。WindowsXP上面默认的RPC/tcpip功能没有打开,必须运行gpedit.msc,计算机配置->管理模版->系统->远程过程调用->用于未验证的RPC...->选择"已启动",限定项选择"无"。第1步:编写 IDL(Interface Description Language,接口描述语言)文件test.idl[ u

2012-05-28 11:04:36 7532 1

原创 短网址功能实现

先来看看短网址映射算法的理论(网上找到的资料)1)将长网址md5生成32位签名串,分为4段, 每段8个字节; 2)对这四段循环处理, 取8个字节, 将他看成16进制串与0x3fffffff(30位1)与操作, 即超过30位的忽略处理; 3)这30位分成6段, 每5位的数字作为字母表的索引取得特定字符, 依次进行获得6位字符串; 4)总的md5串可以获得4个6位串; 取里面的任意

2012-04-26 16:22:42 1511

原创 最小生成树---克鲁斯卡尔kruskal算法---Simple one

1. C程序#include /*initial the matrix*/void ini_mat(int m[][10]){ m[0][1] = 7; m[0][2] = 3; m[0][3] = 4; m[1][2] = 5; m[1][3] = 4; m[1][4] = 200; m[1][5] = 100; m

2012-04-16 21:45:06 1020

原创 编程之美1.15节:构造数独算法-回溯法和置换法

1. 回溯法-程序/**回溯法 * 生成数独矩阵 * From 编程之美1.15*/#include #include /*要生成的数独矩阵个数*/#define SUDOKU_NUM 1/** * 函数is_digital_match * 检测sudoku[i][j]上的值是否符合要求*/int is_digital_match(int sudoku[][9

2012-04-16 10:34:20 7013 2

原创 Linux RPC远程调用示例

客户端给服务器端发送一个包含2给整数的字符串,服务器端发回他们的和。1. radd.x/* radd.x *//* RPC declarations for add program *//* http://zhoulifa.bokee.com/6129455.html *//* ----------------------------------------------

2012-04-13 11:25:30 4069

原创 libpcap包的使用

1. 示例程序此示例程序捕获本地包,即发往127.0.0.1的包,若要捕获外地包,之需要修改device的值为eth0或使用pcap_lookupdev函数查找可用网卡。#include #include #include #include #include #include #include typedef unsigned char UCHAR;typedef un

2012-04-12 15:26:46 1503

原创 Linux exec函数的使用

1. 示例/*exec函数示例*/#include #include int main(void){ int flag; pid_t pid; char *const argv[] = {"%U", "--user-data-dir=/home/Administrator/.chromiun", NULL}; //exec把当前进程印象替换成新的程序文件,故调用进程被覆盖

2012-04-11 09:47:23 8379 2

原创 libxml C语言写xml文档

1. 示例源码#include #include #include #include #define MY_ENCODING "ISO-8859-1"xmlChar *ConvertInput(const char *in, const char *encoding);void testXmlwriterFilename(const char *uri);voidtest

2012-04-06 22:08:23 5754 1

原创 libxml C解析xml文档

1. 代码#include #include #include void parseDoc(char *filename);void printChildrenNames(xmlDocPtr doc, xmlNodePtr cur);//解析xml文件void parseDoc(char *filename) { xmlDocPtr doc; xmlNod

2012-04-06 20:49:10 4230

原创 Ubuntu登录root用户

修改文件/etc/gdm/custom.conf[daemon]TimedLoginEnable=trueAutomaticLoginEnable=falseTimedLogin=rootAutomaticLogin=rootTimedLoginDelay=5DefaultSession=gnome重要的是TimedLogin=rootAutomaticLogin=roo

2012-04-02 15:20:58 908

原创 Linux C连接Mysql数据库

1. 连接数据库/*练习mysql数据库的连接*/#include #include int main(){ MYSQL mysql; int t, r; /*连接之前,先用mysql_init初始化MYSQL连接句柄*/ mysql_init(&mysql); /*使用mysql_real_connect连接服务器,其参数依次为MYSQL句柄,服务器IP地址, 登录my

2012-03-31 10:26:43 12870

原创 Linux Socket TCP通信

1. Server端/*socket tcp服务器端*/#include #include #include #include #include #include #include #include #include #include #include #include #define SERVER_PORT 5555int main(){ int ser

2012-03-31 09:49:27 5293

原创 Linux Socket UDP对等通信

/*socket udo示例程序* 由于UDP是一种对等通信,是不区分服务器端和客户端的*/#include #include #include #include #include #include #include #include #include #include #include #include #define SERVER_PORT 5555int

2012-03-31 09:47:58 2698

原创 Sparks语言: 一种伪代码

SPARKS语言是一种不依赖具体计算机与具体程序设计语言的形式化语言,主要是用来描述或表达算法思想。1. 基本数据类型:整型、实型、布尔型、字符型integer x,y;double z,w;boolean a,b;char c,d;2. 赋值语句x将y的值赋给x3. 两个布尔值true     false为了

2012-03-11 15:25:20 5882 2

原创 编程珠玑第一章,电话号码排序问题

/** 编程珠玑第一章,电话号码排序问题*/#include #include #include #include using namespace std;/*随机数产生函数* n 随机数产生范围(1,n)* m 输出的随机数的个数* arrayM是存放输出结果的整数数组*/void randInt(int n, int m, int arrayM[]

2012-03-07 11:14:12 1518 1

原创 C++ Primer 第15章例子-文本查询程序

1. Main.cpp#include "TextQuery.h"#include #include "QueryAll.h"using namespace std;void print_result(const set& locs, const string& sought, const TextQuery& file){ typedef set line_nums; li

2012-02-26 21:57:41 3719 3

原创 Java:二进制方式读取文件

package hustspy.encrypt;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class FileOper

2011-11-27 18:08:56 13959

原创 Matlab:向量量化学习网络

%向量量化学习网络clearclcp1=[1.24,1.27;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];p2=[1.14,1.82;1.18,1.96;1.20,1.86;1.26,2.001.28,2.00;1.30,1.96];p=[p1;p2]';pr=mi

2011-11-21 20:23:59 2354

原创 Matlab:BP神经网络,用于分类

BP神经网络,即向后传播算法。clear%p1,p2是训练数据p1=[1.24,1.27;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];p2=[1.14,1.82;1.18,1.96;1.20,1.86;1.26,2.001.28,2.00;1.30,1.96];p=

2011-11-21 20:19:35 21251 3

Virtual Machines Versatile Platforms for Systems and Processes

《Virtual Machines: Versatile Platforms for Systems and Processes》,帮助您了解“虚拟机”一词到底指代什么,有什么不同类型,大概有哪些实现方法,等等。读完这本书有助获得一个清晰的大局观。

2017-10-13

修改代码的艺术 中文版

本书是继《重构》和《重构与模式》之后探讨修改代码技术的又一里程碑式的著作, 而且从涵盖面和深度上都超过了前两部经典。 书中不仅讲述面向对象语言(Java、C#和C++)代码,也有专章讨论C这样的过程式语言。 作者将理解、测试和修改代码的原理、技术和最新工具(自动化重构工具、单元测试框架、仿对象、集成测试框架等), 与解依赖技术和大量开发和设计优秀代码的原则、最佳实践相结合,许多内容非常深入,而且常常发前人所未发。 书中处处体现出作者独到的洞察力,以及多年开发和指导软件项目所积累的丰富经验和深厚功力。 通过这部集大成之作,你不仅能掌握最顶尖的修改代码技术,还可以大大提高对代码和软件开发的领悟力。

2017-09-23

Netty5.0 架构剖析和源码解读

Netty5.0 架构剖析和源码解读,Java 网络编程必读。 Netty5.0 架构剖析和源码解读,Java 网络编程必读。 Netty5.0 架构剖析和源码解读,Java 网络编程必读。

2017-09-18

matlab 7.0 在数字信号处理中的应用

matlab 7_0 在数字信号处理中的应用 matlab 7_0 在数字信号处理中的应用 matlab 7_0 在数字信号处理中的应用

2010-04-03

Linux Command Directory

很好很强大 Linux Command Directory Linux Command Directory Linux Command Directory 英文的,英文的,英文的,英文的,英文的,

2009-10-28

Win32help.exe

您需要使用 WinHlp32.exe 程序显示文件扩展名为“.hlp”的 32 位帮助文件。 要在 Windows Vista 上查看 .hlp 文件,需要安装该应用程序。

2009-10-16

新编windows32 api参考大全

作为Microsoft 32位平台的应用程序编程接口,Win32 API是从事Windows应用程序开发所必备的。本书首先对Win32 API函数做完整的概述;然后收录五大类函数:窗口管理、图形设备接口、系统服务、国际特性以及网络服务;在附录部分,讲解如何在Visual Basic和Delphi中对其调用。 本书是从事Windows应用程序开发的软件工程师的必备参考手册。

2009-10-16

Standard C Library c++ STL

包括 General C/C++ Standard C Library C++ Standard Template Library 英文版

2009-09-26

GNU.C++.for.Linux

GNU.C++.for.Linux GNU.C++.for.Linux GNU.C++.for.Linux GNU.C++.for.Linux

2009-09-02

Linux操作系统下C语言编程入门

Linux操作系统下C语言编程入门 Linux操作系统下C语言编程入门 Linux操作系统下C语言编程入门

2009-08-15

Python核心编程第二版中文版

Python核心编程第二版中文版 相当不错的好书阿!!!

2009-08-15

WINDOWS核心编程中文版

WINDOWS核心编程中文版 经典书籍,中文版

2009-04-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除