众所周知,C++中对堆内存的申请与释放完全由用户来控制,这就造成用户在使用的时候经常造成内存泄漏、野指针、重复释放等常见的挂掉问题,所以我们有必要提供一套机制,使得用户只需申请相应的内存,不用管释放的问题,其实这属于著名的RAII(Resource
Acquisition Is Initialization)
技术 。在C++中这种技术称作“智能指针”,C++中的智能指针技术越来越受到广泛应...
分类:
编程语言 时间:
2014-05-13 11:37:49
阅读次数:
358
一、流程图:
二、流程定义文件:
AssigneeUserAndGroup.bpmn
三、单元测试:
ProcessTestDelegateTask.java
四、主要执行语句
// 签收taskService.claim(task.getId(), "user1");task = taskService.createTaskQuery().singleResult...
分类:
编程语言 时间:
2014-05-13 15:51:06
阅读次数:
659
面向对象编程--构造函数和复制控制[续]三、复制控制和继承 合成操作对对象的基类部分连同派生类部分的成员一起进行复制、赋值或撤销,使用基类的复制构造函数、赋值操作符或析构函数对基类部分进行复制、赋值或撤销。 类是否需要定义复制控制成员完全取决于类自身的直接成员。基类可以定义自己的复制控制而派生类使用合成版本,反之,基类使用合成版本,而派生类使用自己定义的复制控制也可以。 只包含类类型或内置类型的数...
分类:
编程语言 时间:
2014-05-13 15:30:40
阅读次数:
388
面向对象编程--转换与继承、复制控制与继承I.转换与继承引言: 由于每个派生类对象都包含一个基类部分,因此可以像使用基类对象一样在派生类对象上执行操作。 对于指针/引用,可以将派生类对象的指针/引用转换为基类子对象的指针/引用。 基类类型对象既可以作为独立对象存在,也可以作为派生类对象的一部分而存在,因此,一个基类对象可能是也可能不是一个派生类对象的部分,因此,没有从基类引用(或基类指针)到派生类...
分类:
编程语言 时间:
2014-05-13 15:15:10
阅读次数:
485
有时一个互斥量是不够的:
比如:
当多个线程同时访问一个队列结构时,你需要2个互斥量,一个用来保护队列头,一个用来保护队列元素内的数据。
当为多线程建立一个树结构时,你可能需要为每个节点设置一个互斥量。
同时使用多个互斥量会导致复杂度的增加
最坏的情况就是死锁的发生,即两个线程分别锁住一个互斥量而等待对方的互斥量。
多互斥量可能导致死锁:
如果...
分类:
编程语言 时间:
2014-05-13 16:32:03
阅读次数:
533
前言:
多线程程序中,特别是频繁申请,释放线程的情况下,就要注意线程的关闭,最好使用线程池。
一,线程退出方式
(1) 执行完成后隐式退出;
(2) 由线程本身显示调用pthread_exit 函数退出;
pthread_exit (void * retval) ;
(3) 被其他线程用pthread_c...
分类:
编程语言 时间:
2014-05-13 16:22:59
阅读次数:
286
第八章 标准库二
第二部分涵盖了许多更能满足专业开发人员需求的高级模块。这些模块在小脚本中很少出现。
8.1 输出格式化
Reprlib模块为大型的或深度嵌套的容器缩写显示提供了repr()函数的一个定制版本。
>>> import reprlib
>>> reprlib.repr(set(’supercalifragilisticexpialidocious’))
"set([’a’...
分类:
编程语言 时间:
2014-05-13 11:47:04
阅读次数:
247
[ JDK生成代理 ]
JDK中给我们提供了一个Proxy类可以动态的给我们生成代理.
假定我们要做一个权限管理系统, 需要控制用户对某一个方法的访问. 如果user为null, 那么不让用户访问save方法.
① 接口类: PersonService
public interface PersonService {
public void save();
}...
分类:
编程语言 时间:
2014-05-13 15:35:46
阅读次数:
267
在所有大括号之外的声明和定义就属于全局作用域。
在全局作用域中定义的变量是全局变量。
变量的声明使用extern
引用其他文件中定义的全局变量需要声明:extern T vari_name;之后再使用。
全局变量由于要被多个文件同时使用,所以必须只有一个定义,其余的全部为声明。否则就会重复定义。...
分类:
编程语言 时间:
2014-05-13 14:15:40
阅读次数:
277
前言
学习任何一个稍有难度的技术,要对其有充分理性的分析,之后果断做出决定---->也就是人们常说的“多谋善断";本系列虽然涉及的是socket相关的知识,但学习之前,更想和广大程序员分享的是一种心境微笑:学习是一个循序渐进的过程,心态应该随时调节,保持戒骄戒躁的状态。比如最近在看网易公开课MIT《算法导论》,老师提到,学习算法之前要计算机数学+离散数学+概率论等课程的知识,所以一直学不好算法的程序员不妨从基础入手,这都是中国式教育惹的祸啊!(此处省略一万字......)...
分类:
编程语言 时间:
2014-05-13 13:53:11
阅读次数:
325
1、作用域介绍
python中的作用域分4种情况:
L:local,局部作用域,即函数中定义的变量;
E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的;
G:globa,全局变量,就是模块级别定义的变量;
B:built-in,系统固定模块里面的变量,比如int, bytearray等。
搜索变量的优先级顺序依次是:作用域局部...
分类:
编程语言 时间:
2014-05-13 14:06:38
阅读次数:
292
用Python和FFmpeg查找大码率的视频文件
本文使用Python2.7, 这个工作分两步
遍历文件夹下的视频文件用ffprobe获取是视频文件的码率信息
用ffprobe 获取json格式的视频信息
用ffprobe.exe是FFmpeg自带的查看视频信息的工具,其获取json格式的信息命令如下
ffprobe -v quiet -print_format json -show...
分类:
编程语言 时间:
2014-05-13 16:26:01
阅读次数:
599
'''
【程序24】
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
1.程序分析:请抓住分子与分母的变化规律。
2.程序源代码:
'''
#方法一
a = 2.0
b = 1.0
s = 0
for n in range(1,21):
s += a / b
t = a
a = a + b
b = t
...
分类:
编程语言 时间:
2014-05-13 15:54:13
阅读次数:
371
1 引言
线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。
为什么有了进程的概念后,还要再引入线程呢?使用...
分类:
编程语言 时间:
2014-05-13 14:02:28
阅读次数:
467