Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux内核中memcpy和memmove函数的区别和实现

Linux内核中memcpy和memmove函数的区别和实现

Kernel version:2.6.32CPU architecture:ARM•memcpy是把src指向的对象中的size个字符拷贝到dest所指向的对象中,返回指向结果对象的指针. •memmove也是把src指向的对象中的size个字符拷贝到dest所指向的对象中,返回指向结果对象的指针,但这两个函数在处理内存区域重叠的方式不同.注意memmove这个函数名称中有"move"这个单词,而实际上src处的数据仍然还在,并没有真的...
浅谈编程语言的类型系统

浅谈编程语言的类型系统

类型系统(type system)是一门编程语言最核心也是最基础的部分。无论该语言基于何种编程范式,都必须在开天辟地之初首先对类型系统作出明确的定义。这是因为,编程语言虽然五花八门,千奇百怪,但是归根结底,编程语言最终的目标,本质上无非是回答两个问题:如何表示信息;如何处理信息。无论是面向过程的编程语言、面向对象的编程语言、函数式编程语言、并行编程语言或者其他任何千奇百怪的编程语言,其根本性的终极目标,就是回答以上两个问题。各种编程语言之所以差异颇大,其实...
C++ Tr1中的正则表达式

C++ Tr1中的正则表达式

要使用正则表达式,首先要有类库支持,C++以前不像Java或者C#有完整的类库使用,但是在Tr1中早已提供了正则库,只是很少被人们注意罢了TR1中包含了一个正则库,来自Boost的 regex,已经纳入了0x新标准,但是新标准遥遥无期。即便如此,现在很多编译器也已经支持了,特别是微软,步伐最快!虽然现在新标准还未完全支持,但是早点了解一下也是好的:#include <iostream>#include <regex>int _tma...
Linux Shell参数替换

Linux Shell参数替换

Bash中的$符号的作用是参数替换,将参数名替换为参数所代表的值。对于$来说,大括号是可选的,即$A和${A}代表同一个参数。${}带冒号的有下面几种表达式:${parameter:-word}如果parameter为null或者未设置,整个参数替换表达式值为word${parameter:=word}如果parameter为null或者未设置,整个参数替换表达式值为word,并且parameter参数值设置为word${parameter:?word}如...
Android 中加载网络资源时的优化 缓存和异步机制

Android 中加载网络资源时的优化 缓存和异步机制

网上关于这个方面的文章也不少,基本的思路是线程+缓存来解决。下面提出一些优化:1、采用线程池2、内存缓存+文件缓存3、内存缓存中网上很多是采用SoftReference来防止堆溢出,这儿严格限制只能使用最大JVM内存的1/44、对下载的图片进行按比例缩放,以减少内存的消耗具体的代码里面说明。先放上内存缓存类的代码MemoryCache.java:public class MemoryCache {private static final String TA...
Java 创建线程池两种不同方法的比较

Java 创建线程池两种不同方法的比较

用java做抓取的时候免不了要用到多线程的了,因为要同时抓取多个网站或一条线程抓取一个网站的话实在太慢,而且有时一条线程抓取同一个网站的话也比较浪费CPU资源。要用到多线程的等方面,也就免不了对线程的控制或用到线程池。我在做我们现在的那一个抓取框架的时候,就曾经用过java.util.concurrent.ExecutorService作为线程池,关于ExecutorService的使用代码大概如下:java.util.concurrent.Executo...
Java内存管理之软引用(Soft Reference)

Java内存管理之软引用(Soft Reference)

软引用(Soft Reference)的主要特点是具有较强的引用功能。只有当内存不够的时候才回收这类内存,因此在内存足够的时候,他们通常不被回收。另外,这些引用对象还能保证在Java 抛出OutOfMemory异常之前,被设置为null。他可以用于实现一些常用资源的缓存,实现Cache的功能,保证最大限度的使用内存而不引起OutOfMemory异常。下面是软引用的实现代码:import java.lang.ref.SoftReference;public ...
Java 创建线程池

Java 创建线程池

线程池的作用:线程池作用就是限制系统中执行线程的数量。根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;否则进入等待队列。为什么要用线程池:1.减少了创建和销毁线程的次数,每个工作线...
<< 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 >>