自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

等等... 大雄,有啦!

数学之美 - Gykimo.com

  • 博客(16)
  • 资源 (7)
  • 收藏
  • 关注

原创 经典软件设计模型 - 事件驱动模型

模型说明在UI编程中,常常要对鼠标点击进行相应,首先如何获得鼠标点击呢?方式一:创建一个线程,该线程一直循环检测是否有鼠标点击,那么这个方式有以下几个缺点:1. CPU资源浪费,可能鼠标点击的频率非常小,但是扫描线程还是会一直循环检测,这会造成很多的CPU资源浪费;如果扫描鼠标点击的接口是阻塞的呢?2. 如果是堵塞的,又会出现下面这样的问题,如果我们不但要扫描鼠标点击,还要扫描键盘

2013-06-27 15:06:38 33516 4

原创 多线程 - 你知道线程栈吗

问题1. local 变量的压栈和出栈过程void func1(){    int a = 0;    int b = 0;}系统中有一个栈顶指针,每次分配和回收local 变量时,其实就是移动栈指针。2. static local变量的分配风险void func2(){    static int a = 0;}这个变量a可能会被分配多次,因为如果

2013-06-20 22:48:38 16052 2

转载 C++ - static_cast | reinterpret_cast | dynamic_cast

reinterpret_cast可以转换任意一个32bit整数,包括所有的指针和整数。可以把任何整数转成指针,也可以把任何指针转成整数,以及把指针转化为任意类型的指针,威力最为强大!但不能将非32bit的实例转成指针。总之,只要是32bit的东东,怎么转都行! static_cast和dynamic_cast可以执行指针到指针的转换,或实例本身到实例本身的转换,但不能在实例和指针之间转换。st

2013-06-20 22:27:02 968

原创 多线程 - 使用Mutex和条件变量实现信号量

说明在某些平台,信号量可能并不支持,可以使用互斥锁和条件变量模拟实现信号量,代码如下代码typedef struct { int val; //信号量的值 pthread_mutex_t mutex; pthread_cond_t cond;} semaphore_t;inline void sem_init(semaphore_t *s, int

2013-06-18 18:22:42 1348 3

原创 经典软件设计模型 - 插件模型

介绍什么是插件方法,就是将某些模块以插件的方式添加到现有系统中来完成某个具体功能,由于这个具体功能可以由很多不同的模块完成,而每次一般只需要其中一个模块,所以必须可以动态更换模块。这在linux驱动程序中使用很多,如摄像头驱动有一个总的模块接口v4l2,而根据不同的摄像头需要动态注册不同的驱动程序,这些驱动程序就类似插件。在处理这种问题时,很多人可能想到C++的类继承,设置抽象基类定义接口,然

2013-06-14 13:17:24 2510

原创 经典软件设计模型 - 生产者消费者模型

简介这里就不具体介绍了,网上一堆关于生产者消费者模式的介绍,这是一个常用的设计方法,只要牵扯多个线程之间协作一般就需要这个设计方法,简单意思就是有个缓冲负责两个线程之间的交流,一个线程往缓冲区写数据,一个线程从缓冲区读数据。缓冲区类型队列缓冲区:缓冲区一般是一个list,每次要写的数据都是新建一块内存,然后将这个内存指针压入队列,读缓冲区就是从队列尾读取,处理完后,将内存释放;

2013-06-13 23:23:29 1893

转载 UNIX常用函数 - 动态库操作相关函数

动态库操作是非常实用的功能,Unix库函数提供了非常简单的方式来操作动态库,它重要的功能是可以从动态库中寻找某个变量或者某个函数(是通过名称),变量或者函数成为“符号/symbol”,另外它还可以设置在打开动态库时,并不是将整个动态库函数都加载到内存,而只是加载需要的函数。dlopen功能:打开一个动态链接库包含头文件:#include 函数定义:voi

2013-06-09 17:28:35 1749

原创 软件学习经典书籍和相关技术推荐

这篇文章是第100篇博客,该文章将我看过的好书总结一下,对后来人也有一个好的指导。看书和网上搜索相比,看书更加系统,更加全面,效率也更高,另外建议不要看电子版,看书还是看印刷版的方便看。C语言入门好书:《C程序设计》谭浩强著,该书言简意该,通俗易懂,非常适合入门学习;深入学习:《C专家编程》;C++语言语法学习:《C++ Primer Plus》,语法讲得很全面

2013-06-08 13:00:31 2254

原创 设计模式 - 访问者模式

UML说明这样的模式用例子解释更好理解,《大话设计模式》上举出的例子是非常好的,讲的是男人和女人在不同状态作出的反应不一样,这样的问题可以有两种设计思路,一种是设置person抽象类,然后男人和女人分别继承person,男人和女人分别对不同反映作出反映,但是如果当增加需要的反映的状态时,男人和女人类都要修改,这就违反了“开放封闭原则”;另一种设计思路是设置一个状态抽象类,该状态抽象

2013-06-07 17:10:02 1016

原创 设计模式 - 建造者模式、解释器模式、模板模式

说明首先乍一看模板模式和其他两个一点也不相关,但是据我分析,建造者模式其实算是一个模板模式,模板模式就是通过抽象基类制定业务逻辑,继承类来实现具体,建造者模式其实也是基类制定要生产商品的步骤,继承者根据要生产的产品进行具体的建造,所以建造者模式就是运用了模板模式,其实从这里也可以看出,模式主要提供的设计理念,有些理念虽然描述上不一样,但是根本上确实一致的。另外建造者模式和解释器模式对比,我

2013-06-07 16:49:37 988

原创 设计模式 - 迭代器模式

UML说明迭代器是用来遍历容器的,STL中运用了大量的迭代器。迭代器最重要的作用有两个,一个是隐藏了容器中的对象,你可能无法知道容器中某个对象的内存地址、具体内容;另一个是能够遍历容器。通过这两点,容器中的对象是非常抽象的,这有利于利用通用的接口控制这些对象。

2013-06-07 16:24:27 669

原创 设计模式 - 备忘录模式

UML说明这个特别适用于需要时常记录对象某些参数。这个模式是非常简单的模式,也比较好理解,在这就不过多说明了。优化以下是我自己的个人分析:但是上面的UML有个弊端,就是使用者要同时管理这三个类,在一些比较简单的情况下,这样会增大用户的使用难度。其实可以让Originator自己管理备忘录,不需要外界的Caretaker进行管理,这样应用起来会更方便。即O

2013-06-07 16:14:31 828

原创 Android - adb

嵌入式开发时,我们经常使用串口对嵌入式设备进行命令控制,当开发Android手机时,手机是没有串口的。adb就是通过USB线对手机进行命令控制的工具,有了adb,我们就可以像使用串口一样进入手机的嵌入式文件系统,输入相应的命令进行相关控制。配置adb1. 安装adbsudo apt-get install android-tools-adb2. 设置usb权限2.1.

2013-06-07 14:08:54 2084

原创 设计模式 - 状态模式、职责链模式

UML状态模式职责链模式区别我一直无法分析出两者真正的区别是什么,两者确实非常相似,他俩都代表着转移,甚至同一个问题都可以由两者分别完成。所以,我在网上搜了一个分析两者区别的文章,如下:职责链模式:当客户提交一个请求时,请求是沿链传递直至有一个ConcreteHander对象负责处理它。接收者和发送者都没有对方的明确信息,且链

2013-06-07 12:36:04 1372

原创 Android - 编译相关

编译命令m mm mmmandroid源码目录下的build/envsetup.sh文件,描述编译的命令- m:       Makes from the top of the tree. - mm:      Builds all of the modules in the current directory. - mmm:     Builds all of the modul

2013-06-07 10:20:03 860

原创 设计模式 - 单例模式、享元模式

相似及区别单例模式和享元模式都是数据共用的意思,及大家共用某个东西,只是单例是大家共用一个东西,而享元是共用多个东西,当然享元的特例就是单例(但是实现时有很大的区别)。享元UML享元案例享元使用得场合并不多,一个很经典的用法就是《大话设计模式》上提到的一个,.NET里面的string使用享元模式,如果string A = “123”, string B =

2013-06-05 18:48:26 2727

C++标准库手册

C++标准库手册

2013-05-02

boost中文手册

boost中文手册,如果无法打开,在CHM文件右键——属性——解除锁定!万事大吉!

2013-05-02

北大ACM1163.DP.optimal.gykimo.cpp

北大 ACM 1163 动态规划 优化版

2013-01-01

北大 ACM 1163 源码

北大 ACM 1163 源码

2013-01-01

北大ACM2965-源码

北大ACM2965-源码

2012-12-28

北大ACM2388-源码

北大 ACM 2388 源码

2012-12-06

北大acm源码2418

北大acm源码2418

2012-12-04

空空如也

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

TA关注的人

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