摘要:
假如汇编语言要实现如下C语言的功能,编译环境Ubuntu14.04(32位)。#includeint refact(int n){ if(n == 1) return 1; else return n * refact(n - 1);}int main(){ ... 阅读全文
摘要:
假如汇编语言要实现如下C语言的功能,编译环境Ubuntu14.04(32位)。#includeint fact_for(int n){ int i; int result = 1; for(i = 2; i <= n; i++) result *= i; ret... 阅读全文
摘要:
假如汇编语言要实现如下C语言的功能,编译环境Ubuntu14.04(32位)。#includeint main(){ int a[] = {3, 0, 5, 1, 4, 6, 2, 9, 8, 7}; int i; for(i = 0; i< 10; i++) pri... 阅读全文
摘要:
以下代码示范交换a和b两个整数的函数,编译环境Ubuntu14.04(32位)假如要实现以下C代码#include void swap(int *xp, int *yp){ int x = *xp; int y = *yp; *xp = y; *yp = x;}int... 阅读全文
摘要:
以下代码示范a和b两个整数相加,编译环境Ubuntu14.04(32位)。代码.section .data a: .int 10 b: .int 20 format: .asciz "%d\n".section .text.global _start_sta... 阅读全文
摘要:
本文以printf为例,详细解析一个简单的printf调用里头,系统究竟做了什么,各寄存器究竟如何变化。环境:linux + gnu as assembler + ld linker如何在汇编调用glibc的函数?其实也很简单,根据c convention call的规则,参数反向压栈,call,然... 阅读全文
摘要:
任务的定义大多数并发程序都是围绕任务进行管理的.任务就是抽象和离散的工作单元.任务的执行策略1.顺序的执行任务这种策略的特点是一般只有按顺序处理到来的任务.一次只能处理一个任务,后来其它任务都要等待处理.响应性很糟糕,吞吐量低.系统资源利用率低.2.显示的为任务创建线程为每个任务创建对应一个线程,响... 阅读全文
摘要:
一、概述 1、我们的memcache客户端(这里我看的spymemcache的源码),使用了一致性hash算法ketama进行数据存储节点的选择。与常规的hash算法思路不同,只是对我们要存储数据的key进行hash计算,分配到不同节点存储。一致性hash算法是对我们要存储数据的服务器进行hash计... 阅读全文
摘要:
在测试接口过程中,有时我们希望知道自己期望传入的参数是什么,以此来判断传入参数的正确行,这时就需要用到EassyMock的capture方法.该方法能捕获传入的参数存放到自定义的变量中,然后用捕获的参数与期望的参数进行对比,从而判断调用接口时使用的参数是否正确.下面用例子演示一下:要测试的接口p... 阅读全文
摘要:
虽然easymock中提供了大量的方法来进行参数匹配,但是对于一些特殊场合比如参数是复杂对象而又不能简单的通过equals()方法来比较,这些现有的参数匹配器就无能为力了。easymock为此提供了IArgumentMatcher 接口来让我们实现自定义的参数匹配器。 我们还是用例子来说话:要测... 阅读全文