摘要: 进程 系统中程序执行和资源分配的基本单位 每个进程有自己的数据段、代码段和堆栈段 在进行切换时需要有比较复杂的上下文切换线程 减少处理机的空转时间,支持多处理器以及减少上下文切换开销, 比创建进程小很多 进程内独立的一条运行路线 处理器调度的最小单元,也称为轻量级进程可以对进程的内存空间和资源进行访问,并与同一进程中的其他线程共享线程 线程相关的执行状态和存储变量放在线程控制表内 一个进程可以有多个线程,有多个线程控制表及堆栈寄存器,共享一个用户地址空间多线程同步问题 线程共享进程的资源和地址空间 任何线程对系统资源的操作都会给其他线程带来影响线程技术发展 Linux 2... 阅读全文
posted @ 2012-04-05 22:27 Alex_Monkey 阅读(49916) 评论(13) 推荐(14) 编辑
摘要: 面向对象封装的原则 要求使对象之外的部分不能随意存取对象的内部数据,从而有效避免了错误对它的“交叉感染”,使软件错误能局部化,降低排错难度继承 所有的类都继承自java.lang.Object,一些常用的方法: equals():比较两个对象引用时否相同。 getClass():返回对象运行时所对应的类的表示,从而得到相应的信息 toString():返回对象字符串表示 finalize():用于在垃圾收集前清除对象 notify(), notifyall(), wait(): 用于多线程处理中的同步 子类(subclass)对父类(superclass... 阅读全文
posted @ 2012-04-05 12:03 Alex_Monkey 阅读(15868) 评论(1) 推荐(2) 编辑
摘要: 进程组 一个或多个进程的集合 进程组ID: 正整数 两个函数 getpgid(0)=getpgrp()eg:显示子进程与父进程的进程组id 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <unistd.h> 4 5 int main() { 6 pid_t pid; 7 8 if ((pid=fork())<0) { 9 printf("fork error!");10 }else if (pid==0) {11 printf("The child proces 阅读全文
posted @ 2012-04-03 23:44 Alex_Monkey 阅读(27803) 评论(6) 推荐(12) 编辑
摘要: 简单数据类型包括: 整型(Interger): byte, short, int, long 浮点类型(Floating): float, double 字符类型(Textual): char 布尔类型(Logical): boolean复合数据类型包括: class interface 数组 String常量: 用final. eg: final int NUM = 100;变量: 局部变量、类变量、方法参数、例外处理参数简单数据间的优先数据关系: 低-->高: byte,short,char->int->long->float->double自... 阅读全文
posted @ 2012-04-03 23:35 Alex_Monkey 阅读(2274) 评论(0) 推荐(0) 编辑
摘要: l信号 对中断机制的一种模拟:异步通信方式任何时候可发给某一进程,无需知道该进程的状态 不可靠信号(非实时信号) 可靠信号(实时信号) 所有可靠信号都支持排队,所有不可靠信号都不支持排队信号生命周期 •信号产生 •信号在进程中注册 •信号在进程中注销 •执行信号处理函数用户进程对信号的响应 执行缺省操作,Linux对每种信号都规定了默认操作 忽略信号,即对信号不做任何处理, 有两个信号不能忽略:SIGKILL及SIGSTOP。 捕捉信号 •定义信号处理函数 •当信号发生时,执行相应的自定义处理函数。四个函数 kill() •发送信号给进程/进程组 ... 阅读全文
posted @ 2012-03-31 19:22 Alex_Monkey 阅读(706) 评论(1) 推荐(0) 编辑
摘要: 概述: 完整的java源程序应该包括下列部分: package语句; import语句; public classDefinition; // 公共的类定义部分,至多只有一个公共类的定义,java语言规定该java源程序的文件名必须与该公共类名完全一致 classDefinition; // 类定义部分,可以有0个或多个 interfaceDefinition; // 接口定义部分,可以有0个或多个package java编译器为每个类生成一个字节码文件,且文件名与类名相同,这就会带来一个问题:同名的类会发生冲突。package便可管理类命名空间。 ... 阅读全文
posted @ 2012-03-31 19:19 Alex_Monkey 阅读(856) 评论(0) 推荐(0) 编辑
摘要: 1. Java虚拟机 Java虚拟机的“机器码”保存在.class文件中,也称作字节码文件。 Java程序的跨平台是指字节码文件可在任何具有Java虚拟机的计算机或者电子设备上运行。 Java编译器将将源程序编译为.class文件。2. 无用内存自动回收机制3. 代码安全性检查机制 4. 全局变量 java不使用全局变量,而类中的公共变量、静态变量相当于类的全局变量。5. 数据类型的一致性 c语言在不同的平台上,简单数据类型如int等分配的字节数不同,而java对数据类型的位数分配总是固定的。字节码执行需要3个步骤: a. 类装载器(class loader)负责把类文件(.cla... 阅读全文
posted @ 2012-03-31 16:32 Alex_Monkey 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 一. 信号量 l信号量: 解决进程之间的同步与互斥的IPC机制多个进程同时运行,之间存在关联 •同步关系 •互斥关系互斥与同步关系存在的根源在于临界资源 •临界资源是在同一个时刻只允许有限个(通常只有一个)进程可以访问(读)或修改(写)的资源 –硬件资源(处理器、内存、存储器以及其他外围设备等) –软件资源(共享代码段,共享结构和变量等) •临界区,临界区本身也会成为临界资源一个称为信号量的变量 •信号量对应于某一种资源,取一个非负的整型值 •信号量值指的是当前可用的该资源的数量,若它等于0则意味着目前没有可用的资源在该信号量下等待资源的进程等待队列对信号量进行的两个... 阅读全文
posted @ 2012-03-26 13:01 Alex_Monkey 阅读(18982) 评论(2) 推荐(1) 编辑
摘要: 一. 管道: 1.只能用于具有亲缘关系的进程之间的通信 2.半双工通信模式 3.一种特殊的文件,是一种只存在于内核中的读写函数管道基于文件描述符,管道建立时,有两个文件描述符:a. fd[0]: 固定用于读管道b. fd[1]: 固定用于写管道创建管道:pipe() 一般步骤:1. pipe()创建管道 2. fork()创建子进程 3. 子进程会继承父进程的管道关闭管道:1. 逐个关闭文件描述符 2. close()eg. 父子进程间的管道通信:父子进程对管道分别有自己的读写通道,把无关的读端或写段关闭。 View Code 1 #include <stdi... 阅读全文
posted @ 2012-03-22 21:41 Alex_Monkey 阅读(4977) 评论(0) 推荐(1) 编辑
摘要: 1 # FileName: cardbook.py 2 3 # this program helps u manage your card book. 4 # it has 6 functions: 5 # 1. add a record 4. print the cardbook 6 # 2. del a record 5. save the cardbook 7 # 3. search a record 6. exit... 8 9 # card book will be saved in c:\\p... 阅读全文
posted @ 2012-03-21 00:46 Alex_Monkey 阅读(524) 评论(0) 推荐(0) 编辑