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

首页 / 操作系统 / Linux

Java设计模式--单例模式

Java设计模式--单例模式

单例设计模式Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点。核心知识点如下:(1) 将采用单例设计模式的类的构造方法私有化(采用private修饰)。(2) 在其内部产生该类的实例化对象,并将其封装成private static类型。(3) 定义一个静态方法返回该类的实例。/** * 方法一* 单例模式的实现:饿汉式,线程安全 但效率比较低 */ publi...
Linux内核实现中断和中断处理

Linux内核实现中断和中断处理

Linux实现中断处理内核是怎么知道应用程序要调用系统调用的呢?或者说应用程序怎么通知系统内核自己需要执行一个系统调用,这是通过软中断实现的,通过引发一个异常来促使系统切换到内核态去执行异常处理程序PS:什么时候会从用户态切换到内核态呢?1.中断;2.陷阱;3.系统调用中断分为两种,硬中断和软中断;在许多处理器体系结构处理异常和处理中断的方式类似,为了助于理解,可以把异常想象成软中断,我们通常说的中断是硬中断,硬中断是由硬件引起而不是软件引起的每一种中断都...
进程调度算法Linux进程调度算法

进程调度算法Linux进程调度算法

这次介绍一下操作系统的进程调度算法操作系统的调度分为三种:1.远程调度(创建新进程);2.中程调度(交换功能的一部分);3.短程调度(下次执行哪个进程)这次讲述的就是短程调度,可以简单的看作咱们平时所说的进程调度啦当发生下面几种情况的时候会调用短程调度器,然后就看下次执行那个进程啦时钟中断I/O中断操作系统调用信号(如信号量)进程调度算法:先来先服务(FCFS)短作业优先(SPN)最短剩余时间(SRT)时间片轮转最高响应比优先公平共享调度先来先服务就和名字...
atexit函数和两种特殊文件权限位

atexit函数和两种特殊文件权限位

atexit函数atexit函数的原型如下 void atexit(void (*func)(void)) 它是一个参数为返回值和参数均为空的函数指针的函数,含义是当前进程结束之前执行参数函数指针所指向的函数,使用的时候要在main中注册,一次可以注册很多函数,函数的执行顺序与注册的先后有关,关系恰好相反,第一个注册的函数反而是最后一个执行。下面是执行实例。 1 #include<stdio.h> 2 #include<stdlib.h&...
函数栈帧(用汇编来剖析)

函数栈帧(用汇编来剖析)

这次讲解一下C++函数调用,学了这么久C语言,肯定听说过栈(数据结构啊,地址空间的栈啊之类的),函数调用就和栈密切相关。因为地址空间内的栈是从高地址向低地址生长的,也就是说压栈顺序靠后的反而地址比较低,栈底的地址高于栈顶的地址,下面贴上一段测试代码#include<stdio.h> #include<stdlib.h>void bug(){ printf("haha I ...
Python中在脚本中引用其他文件函数的方法

Python中在脚本中引用其他文件函数的方法

在导入文件的时候,Python只搜索当前脚本所在的目录,加载(entry-point)入口脚本运行目录和sys.path中包含的路径例如包的安装地址。所以如果要在当前脚本引用其他文件,除了将文件放在和脚本同一目录下,还有以下几种方法,1. 将文件所在位置添加到sys.path中import syssys.path.insert(0, "/path/to/application/app/folder") # or sys.path.append("/path...
Commons CLI使用详解

Commons CLI使用详解

Preface:Apache Commons CLI library为用户提供了一个解释命令行的API.它在解释命令行时主要有三个状态,即:定义、解释和询问交互。下面的部分中将会详细的讨论这三个部分的内容,以及怎么样利用CLI实现它们。接下来的部分就是一些实例,通过实例演示了如何使用Commons CLI来解释处理命令。Example:下面就是我们要实现的效果(在这里参数与命令没有任何特殊意义,只是为了表示如何完成相应的功能):usage:gmkdir[-...
使用 Apache Commons CLI 开发命令行工具

使用 Apache Commons CLI 开发命令行工具

虽然各种人机交互技术飞速发展,但最传统的命令行模式依然被广泛应用于各个领域:从编译代码到系统管理,命令行因其简洁高效而备受宠爱。各种工具和系统都提供了详尽的使用手册,有些还提供示例说明如何二次开发。然而关于如何开发一个易用、强壮的命令行工具的文章却很少。本文将结合 Apache Commons CLI,通过一个完整的例子展示如何准备、开发、测试一个命令行工具。希望本文对有相关需求的读者能有所帮助。基于 Apache Commons CLI 的命令行设计通常...
Apache Commons CLI命令行启动

Apache Commons CLI命令行启动

今天又看了下Hangout的源码,一般来说一个开源项目有好几种启动方式——比如可以从命令行启动,也可以从web端启动。今天就看看如何设计命令行启动...Apache Commons CLIApache Commons CLI是开源的命令行解析工具,它可以帮助开发者快速构建启动命令,并且帮助你组织命令的参数、以及输出列表等。CLI分为三个过程:定义阶段:在Java代码中定义Optin参数,定义参数、是否需要输入值、简单的描述等解析阶段...
Python的修饰器@

Python的修饰器@

修饰器是一个很著名的时机模式,经常用于有切面需求的场景,如插入日志、性能测试、事务处理等。修饰器能够很好地解决这些问题,有了修饰器我们能抽离出大量函数中与函数功能本身无关的雷同代码并继续使用。也就是说,修饰器的作用就是为已经存在的函数对象添加额外的功能。1.修饰器入门:1.1.需求的由来:修饰器的定义很抽象,先来看一个例子:1234deffoo(): print"infoo()" foo()这个函数的功能是打印出一窜字符窜。如果想要测试执行这个函数用...
Python的垃圾回收机制

Python的垃圾回收机制

在Python中,一切对象都是引用计数的。当分配一个新的名字给一个对象,或将其放到一个列表、远足或字典中时,这个对象的引用计数就会增加1。如: a = 2 #在内存中创建一个对象‘2’,并把名字a指向该对象,该对象的引用计数为1 b = a #引用计数加1,为2 del a #删除a的引用,此时引用计数为1当‘2’的引用计数为0的时候,他会在适当的时机被Python的垃圾回收机制回收。 但在特定的情况(...
Spring bean加载2--FactoryBean情况处理

Spring bean加载2--FactoryBean情况处理

在Spring bean加载过程中,每次bean实例在返回前都会调用getObjectForBeanInstance来处理FactoryBean的情况.这边的FactoryBean,Spring设计用于新建复杂bean的,联想下GOF设计模式的创建型,一样的为了解决复杂的bean实例化过程.其实这边的FactoryBean就是一个factory method[gof定义的意图:定义一个用于创建对象的接口,让子类决定实例化哪个类.Factory Method...
Java开发abstract 和 interface的区别

Java开发abstract 和 interface的区别

Java开发里面经常会用到虚函数和接口,这两者的区别是什么呢?abstract: 子类里面只能继承一个父类interface: 子类可以实现多个接口那什么时候用abstract,什么时候用interface呢?当某个子类和父类是 is a关系时,比如一个亚洲人是一个人,那么一个亚洲人的子类可以继承一个人的父类。当子类和父类是like a关系时,比如一个美洲超人像一个超人,超人的能力不是每个人都有的,所以不是所有人的属性,我们不能把超能力归于人的父类,这时就...
<< 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 >>