自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Darren's Thought

简单、自信、具体、合理

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

原创 Java时间轮算法的实现

考虑这样一个场景,现在有5000个任务,要让这5000个任务每隔5分中触发某个操作,怎么去实现这个需求。大部分人首先想到的是使用定时器,但是5000个任务,你就要用5000个定时器,一个定时器就是一个线程,你懂了吧,这种方法肯定是不行的。 针对这个场景,催生了时间轮算法,时间轮到底是什么?我一贯的风格,自行谷歌去。大发慈悲,发个时间轮介绍你们看看,看文字和图就好了,代码不要看了,那个文章里的代码运

2016-11-17 23:44:02 11201 3

原创 grpc学习笔记--Java版

这几天由于工作的原因,涉及到系统之间的通信,rpc调用方式不失为内部系统之间的一种高效简单的方式,至于rpc是什么,这里不多说,自行Google去。 在比较了Thrift(Apache开源项目)和grpc(谷歌去年开源的一个项目)后,选择了grpc,这里不想多说它们两个之间的区别。 在阅读下面代码之前你先要去了解一下protocol buffer 本文涉及的程序,用的开发工具是idea2016

2016-11-15 23:57:22 5702

原创 zookeeper环境的搭建

最近由于项目中需要用到zookeeper,仔细的研究了一下,将持续更新zookeeper相关文章,留个痕迹。本文以及后续zookeeper相关的文章都是以Linux环境环境为基础的,代码是基于C语言。zookeeper是Hadoop下的一个子项目,主要用来解决同步服务,配置管理,集群管理,分布式调度等一些分布式应用中的问题,具体的zookeeper的详细介绍网上很多,在此不再赘述。zo

2015-04-01 01:10:01 4018 2

原创 Linux C程序异常退出怎么办——core文件帮你忙

想必你一定遇到过Linux下程序异常退出的问题,异常退出貌似有一种神奇的魔力,会让你神经突然紧张。不要怕,Linux是很强大的,在程序退出的时候,会在可执行文件所在的目录生成一个core文件,它很好地记录了一些神秘而又必要的东西,帮助你定位到错误的根源,想想以前面试的时候人家闻到core文件,我答不上来,你说面试官会怎样想,那么就来说说core文件。core文件实际上就是一个内存映象同时加上一

2015-03-08 22:28:14 5990 2

转载 Oracle错误表

ORACLE错误一览表,方便大家查询!ORA-00001: 违反唯一约束条件 (.)ORA-00017: 请求会话以设置跟踪事件ORA-00018: 超出最大会话数ORA-00019: 超出最大会话许可数ORA-00020: 超出最大进程数 ()ORA-00021: 会话附属于其它某些进程;无法转换会话ORA-00022: 无效的会话 ID;访问被拒绝ORA-0

2014-05-06 15:40:57 6803

原创 C语言中指针作为函数形参的思考

以一段代码来切入主题吧。#include #include #include void function1(int *v){ v = (int *)malloc(sizeof(int)); *v = 100;}void main(){ int *v = NULL; function1(v); printf("%d\n",*v);}你会发现这段代码不能运行,为什么呢?不

2014-03-21 17:06:39 4559

原创 Linux下串口操作之数据拼接

串口操作中,特别以非阻塞的方式读取和发送数据,做好进程之间的同步很重要。有时我们会发现这样一个问题,在进行read操作时,一次read不能获得一个完整的数据帧,这就好比你买了一个电脑,送货的先把显示器送到你家,再把机箱送到,你会发现还少键盘鼠标什么的,又要过几天才送,这会让你急死。很不幸,在串口操作的时候,接受数据很可能就是这样分批收货的,但是幸运的是,接受数据的动作很快,别忘了计算机就是靠速度这

2013-08-13 16:46:01 5446

原创 Linux下打开串口设置

给出打开串口函数//打开串口int open_tty(char tty[]){ int fd; char tty_path[32]={0}; sprintf(tty_path,"/dev/%s",tty); fd=tty_open_port(tty_path); tty_set_opt(fd,PORT_SPEED,8,'N',1); return fd;}该函数接受一个参数,

2013-08-09 16:53:19 4923

原创 CRC校验的实现

本例提供的是通过查表发来实现CRC校验。CRC余式表如下:unsigned int crctab[256] ={/*CRC余式表 */0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef

2013-08-09 16:16:51 4414

原创 Linux下一个简单的多线程互斥锁的例子

#include #include pthread_mutex_t Device_mutex ;int count=0;void thread_func1(){ while(1) { pthread_mutex_lock(&Device_mutex); printf("thread1: %d\n",count); pthread_mu

2013-07-08 13:25:12 4548

原创 Linux C写数据到文件中

#include void write_data2file(){ FILE *fp; char buffer[100]; memset(buffer,0,sizeof(buffer)); fp=fopen("data.log","a+"); if( NULL != fp ) { sprintf(buffer,"I want to

2013-06-09 17:01:54 6517

原创 Linux下获取系统时间

void get_sys_time(char buf[]){ time_t now; struct tm *timenow; time(&now); timenow=localtime(&now); memset(buf,0,sizeof(buf)); sprintf(buf,"%d-%d-%d %d:%d:%d",timenow->tm_year+1900, timenow->tm_mon+1, timenow->tm_mday,timenow->tm_hour, timenow

2013-06-09 16:48:40 4186

原创 Linux Socket编程的一些总结

最近写了一些Linux下网络编程的一些程序,做几点总结吧。先给出客户端后服务器的一些Socket初始化的代码,以后可以直接拿来调用。客户端Socket初始化代码#include #include #include #include #include #include #include #include #include #include #include #inc

2013-06-09 16:17:14 4667 1

原创 Linux下递归创建目录

int CreateDir(const char *sPathName) { char DirName[256]; strcpy(DirName, sPathName); int i,len = strlen(DirName); if(DirName[len-1]!='/') strcat(DirName, "/

2013-06-07 19:12:00 7880

原创 Linux下C语言获取本机IP地址

#include #include #include char* GetLocalIp() { int MAXINTERFACES=16; char *ip = NULL; int fd, intrface, retn = 0; struct ifreq buf[MAXINTERFACES]; struct

2013-05-19 00:58:32 10805

原创 我也来说说Linux下Qt+opencv2.1移植到tiny6410

终于把opencv移植好了,心里那个爽啊,感觉整个世界都在为我让步。呵呵,废话少说,进入正题。我用的系统是Fedora14(其实哪个版本都差不多的),确保自己的系统已经成功安装交叉编译环境,关于交叉编译环境的搭建就不必多说了,网上的教程一大堆呢。你的系统上必须安装CMake,opencv2.0以后的版本必须用CMake来创建makefile,这也不难,网上搜搜。小技巧:我在安装

2013-03-11 14:56:19 5165 1

转载 linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结

原文链接地址:http://www.jb51.net/LINUXjishu/43356.htmlLinux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进 行压缩了,所以首先就来讲讲tar命令的基本用法:   tar命令的选项有很多(用man tar可以查看到),但常用的就那么

2013-01-20 19:44:41 3895

原创 Tiny6410开发板上Linux系统的安装

首先我们要烧写Bios到SD卡上(基于Windows XP)1、准备一个4G或容量更大的SD卡,将它快速格式化2、打开光盘\tools\中的SD-Flasher.exe烧写软件,如图,请注意,此时软件中的“ReLayout”和“ReFormat”按钮是失效的,因为我们特意在WindowsXP系统中关闭了此功能。3、找到所要烧写的superboot (注意不要放在中文目录下),如

2013-01-20 14:47:55 7252 2

原创 栈的应用——括号匹配的检验(C语言)

这个应用来自于严蔚敏的《数据结构(C语言版)》,即这本书上的第49页。大致要实现的功能如下:假设表达式中允许包括两种括号:圆括号和方括号,其嵌套的顺序随意,即(【】())或【(【】【】)】等为正确的格式,【(】)或(【())等均为不正确格式。在设计程序的时候,借助于栈,将每个元素遍历一遍,根据一定的条件来确定是出栈还是入栈,如果最后栈为空,则括号是匹配的,否则不会匹配。实现的代码如下:

2012-04-17 19:31:24 20357 1

原创 数据结构之选择排序的实现(C语言)

#include void BubbleSort(int *a, int len){ int count,i,j,min_temp,temp_int; for (count=0;count<len-1;count++)//总共要进行len-1步排序 { //每一次都要找到剩下的元素的最小元素,并将它放在剩下元素的开始位置 min_temp=count; for (i=coun

2012-04-15 12:51:46 4779

原创 数据结构之冒泡排序的实现(C语言)

#include void BubbleSort(int *a, int len){ int count,i,j,temp; for (count=0;count<len-1;count++)//总共要进行len-1步排序 { for (i=len-1;i>count;i--)//不断比较和交换相邻的两个数 { if (a[i]<a[i-1])

2012-04-15 09:02:19 2412

原创 参加软件设计大赛的点点思绪

考场出来,我有点懵了,四个半小时内10道题目我只做了3道,肯定是获不了奖了。是自己的编程能力太弱了还是真的发挥不好?对的,自己的编程能力还差得很远,我必须面对这个现实。大学三年来,我一直努力地学习计算机,有时候还算是挺有成就感的,一直认为自己过得挺充实的,可是编程能力还是不行。试卷上遇到一个问题我都要想好一会,二进制的转换问题是编程里的一个最基础的东西,可就是这样一个最基础的东西搞了我好长时间

2012-04-08 18:27:25 1939

原创 数据结构之十进制转二进制(C语言)

#include #include int _to_2(int n){ if (n!=0) { _to_2(n/2); printf("%d",n%2); }}int main(){ int n; scanf("%d",&n); _to_2(n); return 0;}采用动态规划的思想,n的二进制数取决于n/2的二进制数,如此形

2012-04-06 18:19:31 4265

原创 数据结构之快速排序(C语言)

快速排序采用了分治算法的思想,排序的关键点在找出分割点,使左边的数都比其小,右边的数都比其大,在分别对左右排序。快速排序的思想可以参考下面的视频:舞动的排序,快速排序。下面给出我的源代码:#include #include int partition(int *a,int left,int right){ int base; int position;//记录分割位置 base

2012-04-06 14:07:16 2599

原创 数据结构之希尔排序(C语言)

#include #include #include #define SIZE 10void ShellSort(int *a,int len){ int i,j,h; int r,temp; int x=0; for (r=len/2;r>=1;r/=2)//先取n/2个序列,再取n/4个序列,n/8个序列。。。 { for (i=r;i<len;i++) {

2012-04-05 15:38:05 2599

原创 数据结构之插入排序的实现(C语言版)

#include #include #include #define SIZE 10void InsertionSort(int *a,int len){ int i,j,t,h; for (i=1;i<len;i++) { t=a[i];//把要插入的元素赋值给t j=i-1; while (j>=0&&t<=a[j]) { a[j+1]=a[

2012-04-05 13:56:48 1537

原创 数据结构之顺序队列的操作(C语言)

#include #include #include #define QUEUELEN 15//数据结构的定义typedef struct { char name[10]; int age;}DATA;typedef struct { DATA data[QUEUELEN]; int head; int tail;}SQType;//队列的初始化SQType

2012-03-13 15:07:45 2501

原创 数据结构之顺序栈的操作(C语言)

#include #include #include #define MAXLEN 50typedef struct { char name[10]; int age;}DATA;typedef struct stack { DATA date[MAXLEN+1]; int top;}StackType;//栈的初始化StackType *STInit(){

2012-03-06 15:34:38 2991 2

原创 嵌入式之Fedora14+Tiny6410上Qt4.7开发环境的搭建

我的Fedora14是自己安装的,安装的时候基本上把可选的安装包都安装了。一,Linux上Qt开发环境的安装1. 首先安装Fedora14上安装Qt Creator,需要的安装包为【qt-sdk-linux-x86-opensource-2009.05.bin】,下载地址为【http://get.qt.nokia.com/qtsdk/qt-sdk-linux-x86-opensource-

2012-02-28 19:21:08 2987 1

原创 Linux下Qt安装之qt-x11-opensource-src-4.3.2的安装与配置

搞了我一天,终于在linux下成功安装了Qt,我用的系统是Fedora 9。首先下载qt-x11-opensource-src-4.3.2.tar.gz源码包(地址是:http://down1.chinaunix.net/distfiles/qt-x11-opensource-src-4.3.2.tar.gz,将这个地址直接粘贴到迅雷的新建任务中进行下载)。下载好源码包后,我们来一步一步地操作

2012-02-15 13:11:13 5204 2

原创 Linux下C语言键盘输入密码时无回显(屏幕不显示字符)

#include #include #include #include #define ECHOFLAGS (ECHO | ECHOE | ECHOK | ECHONL)//函数set_disp_mode用于控制是否开启输入回显功能//如果option为0,则关闭回显,为1则打开回显int set_disp_mode(int fd,int option){ int err;

2011-12-15 09:25:21 8724 4

原创 C语言以文本文件为数据库的用户注册

一个简单的C语言例子,用来实现用户的注册,把注册的信息放到文本文件中。不会重复注册信息,可以查看所有的注册信息。先看头文件(user_data.h):#include typedef struct { char key[10]; char name[20]; int age;}User;int regist();void read_user();再看源

2011-12-05 12:39:25 2751 1

原创 开机加速——在注册表里禁止开机自检硬盘

在注册表里禁止开机自检硬盘:运行Regedit,进入注册表然后找到下面的键值:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager再找到右边这个值:BootExecute把里面的数据全部删除,这样就可以彻底禁止重启的时候运行磁盘扫描程序。通过修改注册表,跳过开机硬盘检测XP系统在每次开机的时候

2011-11-15 17:04:40 2008

原创 Linux下基于C语言流的文件复制

#include #include int main(){ char buffer[1024]; FILE *in,*out;//定义两个文件流,分别用于文件的读取和写入 int len; if((in=fopen("test.pdf","r"))==NULL)//打开源文件的文件流 { printf("the file1 can not open\n");

2011-11-02 09:35:52 2212 2

原创 Linux下基于TCP的文件传输

服务器:#include #include #include #include #include #include #include #define SERVER_PORT 6666#define LISTEN_QUEUE 20#define BUFFER_SIZE 1024int main(int argc,char **argv){ struct socka

2011-10-30 10:17:22 12966 4

原创 linux下基于TCP简单的socket通信程序

服务器端程序:  #include      #include      #include      #include      #include      #include      #include      #include      #include      #include      #define PORT 2370      #defi

2011-10-26 14:50:14 2982 1

原创 linux下父子进程间的通信——管道

#include #include #include #include #include int main(void){ int result=-1; int fd[2],nbytes;//数组用来存放管道两端的文件描述符 pid_t pid; char string[]="hello , pipe";//要发送的内容 char readbuffer[80];

2011-10-21 21:45:31 4586

原创 linux下线程的创建和等待

#include #include #include #include #include char message[]="hello world ";void *thread_function(void *arg)//线程函数{ printf("thread_

2011-10-15 12:41:12 1444

原创 shell脚本程序函数参数传递

#!/bin/shyes_or_no(){ echo Is your name $* ?while true do echo -n "Enter yes or no:" read x case "$x" in

2011-09-21 22:55:17 2826

原创 VS2008恢复默认设置

有些时候,vs集成开发环境会出现各种各样的问题,一时间我们难以解决。今天我就遇到了一个新建项目时弹出网页和文件下载提示框的问题,总不能为了个小问题重装VS吧。这时候恢复默认设置是个很好的办法,具体操作如下:1.进入命令行模式,在“开始”--“VS2008”--“V

2011-09-11 22:58:44 2531

时间轮Java代码

Java版本时间轮实现,基于netty

2016-11-17

C#做的图像的灰度化和反色处理

C#做的图像的灰度化和反色处理,包括反色,灰度化,图像的恢复,VS2008环境下开发

2013-02-01

DES加密算法实现论文

DES加密算法的论文,我们做的大作业,希望对你有用。

2012-01-09

基于CSS做的个人博客

基于CSS的个人博客,可以用作CSS大作业,有许多页面可以相互链接,还有一个说明文档,具体讲实现过程。

2011-08-05

利用VC++实现avi文件的合成与分解

首先系统介绍了avi格式,然后详细介绍了怎么样用VC++实现avi文件的合成与分解

2011-08-02

C#版计算器的源代码

自己做的C#计算器,有源代码,功能简单,只包含基本的运算,可以清零。

2011-08-01

基于C语言图形编程资料

C语言下的图形编程资料,教你一些基本图形的绘制,详细介绍了用法

2011-08-01

C语言版贪吃蛇源代码

C语言版的贪吃蛇,包含源代码,在TC环境下运行的,有关卡的设置,有声音。

2011-08-01

中文版MFC类库详解

中文本的MFC类库详解,每个类都有详细的用法,包含什么函数,怎么用函数。

2011-08-01

如何学习嵌入式,嵌入式入门

给想学习嵌入式而又不知道怎么样入门的一点建议,让你知道如何学习嵌入式,怎么样快速入门。

2011-07-12

VS2008版MFC资源管理器

MFC开发的简单资源管理器,用VS2008开发的,有打开文件,查找文件等功能

2011-04-20

计算机组成原理第二版课后习题答案全_唐朔飞

计算机组成原理第二版课后习题答案全_唐朔飞

2011-03-08

空空如也

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

TA关注的人

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