摘要:
信号量:用于管理对资源的访问;共享内存:用于在程序之间高效的共享数据;消息队列:在程序之间传递数据的一种简单方法; 一、信号量 临界代码:需要确保只有一个进程或者一个执行线程可以进入这个临界代码并拥有对资源独占式的访问权。临界区:真正执行数据更新的代码需要独占式的执行,它们被称为临界区域;它们通常只在一个大型程序中占据一小段的代码。 信号量是一个特殊的变量,它只取正整数值,并且程序对其访问都是原子操作;只允许对它进行等待和发送信号这两种操作。在Linux编程中,等待和发送信号都已具有特殊含义,所以用原先定义的符号来表示这种操作:P:信号量变量:用于等待;V:信号量变量:用于发送信号; 1、信号 阅读全文
摘要:
The Troublesome FrogTime Limit: 5000MSMemory Limit: 100000KTotal Submissions: 9449Accepted: 2823Case Time Limit: 500MSDescription In Korea, the naughtiness of the cheonggaeguri, a small frog, is legendary. This is a well-deserved reputation, because the frogs jump through your rice paddy at night, f 阅读全文
摘要:
前面介绍的都是网络TCP的服务器和客户端,其实还有UDP的服务器和客户端,同时也有同步和异步之分。UDP与TCP最大的区别,就是TCP是基于连接的,而UDP是无连接的。这里所谓的连接是指对方中断服务时,另外一方是可以感知的,而UDP是无法感知对方是否中断服务。还有另外一点,TCP发送的数据包是有流量控制和顺序控制的,而UDP是无流量控制和顺序控制的。因而采用UDP时,基本上都是发送一些无关顺序,或者丢失的情况下使用。比如UDP使用在即时语音通讯、视频通讯上,就存在广泛的使用。由于语音通讯时,对于已经丢失的话,可以再说,并且过时的语音再播放出来也是无意义的。还有在视频会议上,由于不同的客户存在不 阅读全文
摘要:
本算法是基于Lin Hong et al 的论文“Fingerprint ImageEnhancement: Algorithm and Performance Evaluation”编写而成。其中一个重要的假设就是:沿脊线垂直方向的灰度变化呈正弦波形。程序的流程如下所示: 0 Notation O 是方向场F 是频率场 R 是区域标记 1 Normalization将原始图像的灰度值的均值和方差调整到所期望的均值和方差,减少沿脊和谷方向上的灰度级的变化。 img=imread('25_2.tif');img=double(img);figure,imshow(img./255 阅读全文
摘要:
微软的Windows提供了三种机制对内存进行操控1 虚拟内存(最适合管理大型对象数组或大型结构数组)2 内存映射文件(大型数据流/文件,共享数据)3 堆(大量的小型对象) 预订地址空间区域VirtualAllocPVOID VirtualAlloc(PVOID pvAddress,//内存地址,传NULL则由系统指定位置,必须始终位于进程的用户分区中,如果不是分配粒度的整数倍,则下去整到64K的整数倍。 SIZE_T dwSize,//区域大小,系统始终分配页面大小的整数倍 DWORD fdwAllocationType,//预订操作MEM_RESERVE,以及一些其他的标志。 DWORD . 阅读全文
摘要:
DataStructure是一组互相之间存在一种或多种特定关系的数据的组织方式和它们在计算机内的存储方式,以及定义在该数据上的一组操作。从以上定义可知,数据结构是研究数据的组织、存储方式及其操作的学科。随着计算机的普及,使用计算机来储存、操作数据越发的体现出其必要性。选择合适的数据结构,可降低程序的复杂性,提高程序执行效率。学习总括可大致如下: 一般教科书的第一章总是既简单又复杂的,了解数据结构的基本概念,是我们学习的前提,也是第一章便要介绍的内容,学起来还算简单,复杂的是它要整体介绍这本书,理解起来多多少少都会有不清楚的地方。 二、三章讲解线性表,栈、队列、数组等的概念,属于数据结构中的线. 阅读全文
摘要:
题目地址:点击打开链接C++代码:#include #include int main(){ char s1[10000],s2[10000]; double a,b,ans; char c; while(scanf("%s %c %s",s1,&c,s2)!=EOF) { a=atof(s1); b=atof(s2); printf("%s %c %s\n",s1,c,s2); if(a>2147483647) printf("first number too big\n"); if(b>2147483647) 阅读全文
摘要:
康托展开 康托展开的公式是 X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,ai为当前未出现的元素中是排在第几个(从0开始)。 这个公式可能看着让人头大,最好举个例子来说明一下。例如,有一个数组 s = ["A", "B", "C", "D"],它的一个排列 s1 = ["D", "B", "A", "C"],现在要把 s1 映射成 X。n 指的是数组的长度,也就是4,所 阅读全文
摘要:
零、回顾这部分先来回顾一下上一篇博客中的主要内容。上一篇博客中主要简单介绍了Derby数据的历史,特点,安装以及使用的两种模式。这篇文章主要介绍这两种模式中的一种模式一、启动服务端程序第一部分主要来启动Derby数据库的服务端程序来接收客户端过来的请求。启动服务端程序有两种情况,一种是本机作为服务端,一种是远程的某台主机作为服务端程序。下面将对这两种情况分别介绍。(说明,我使用的是Linux环境,使用Windodws环境的类似,可自行查阅使用手册)先来介绍第一种情况,即本机当做服务器端。首先打开一个终端,切换到一个位置。需要特别注意的是这个位置非常重要,它将作为数据库访问时根目录对待。如我现在 阅读全文
摘要:
纠结了好一阵子, 最终给我解决了。直接上代码了:mapper文件: INSERT INTO blog (user_id, blog_id) VALUES (#{userId}, #{blog}) java代码: public void saveBlogs(Integer userId, List blogs) { Map param = new HashMap (); param.put("userId", userId); param.... 阅读全文