`
duantonghai
  • 浏览: 20354 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

面向对象

 
阅读更多

3要素: 封装,继承,多态

5原则:
单一职责:对于一个类,应该仅有一个引起它变化的原因
开放封闭:软件实体可以扩展,但不能修改
Liskow替换原则:子类必须能够替换他们的基类型
依赖倒置:抽象不依赖与细节,细节应该依赖与抽象
接口隔离:多个专用接口优于一个通用接口


进程: 一个执行中程序的实例, 

提供给程序2个关键抽象
1, 一个独立的逻辑控制流
2, 一个私有的地址空间

一个运行应用程序代码的进程初始化时应该实在用户模式,切换到内核模式的唯一办法是通过诸如中断,故障或者陷入系统调用(trapping system call)这样异常,异常出现时,控制传递到异常处理程序,处理器从用户切换到内核模式执行程序,当返回应用程序时,切回用户模式.

/proc 文件系统, 将许多内核数据结构内容输出为用户可读取的ASCII文件
可在 linu /proc下找出系统属性 /proc/cpuinfo, 或者某个进程使用的存储器段
/proc/process_id/maps

 

上下文就是内核重启一个被抢占进程所需要的状态,由一些对象值组成(通用寄存器,浮点寄存器,用户栈。。。。)

上下文切换可以

1, 保存当前进程上下文

2, 恢复某个先前被占用进程所保存的上下文

3, 控制传递给新恢复进程

 

 

子父进程

1,调用一次,返回2次

2, 并发执行

3, 相同的但是独立的地址空间, 都有自己独立的私有地址空间,对变量更改不会影响另外一个

4,共享文件

 

 

系统并发实现方式

1, 进程 每个逻辑控制流都是一个进程,由内核来调度维护。因为进程有独立的虚拟地址空间,想要和其他流通信,控制流必须使用某种显示的进程间通信(IPC)机制

 

进程实现方式,每次主进程都fork出一个子进程来处理

 

优点: 地址独立,不会相互覆盖其他进程变量

 

缺点: 进程间通信复杂度高,耗时

 

2, I/O多路复用  应用程序在一个进程上下文中显示的调度他自己逻辑。逻辑流被模型华为状态机,作为数据到达文件描述服的结果,主程序显示的从一个状态切换到另外一个状态。因为程序是一个单独进程,所以所有流都共享同一个地址空间

 

 

I/O多路复用: 用select函数来确定是不是io 条件已经触发,如果没触发就阻塞

 

优点: 可现实事件驱动,他比基于进程的设计给了程序员给多的对程序行为的控制, 运行在单一进程上下文的,每个逻辑流可访问该进程的全部地址空间,流之间共享数据变的很容易

 

缺点: 编程复杂

 

 

3, 线程, 线程是运行在一个单一进程上下文的逻辑流,由内核调度。看看作前2中混合,像进程一样由内核调度,像多路复用一样共享一个虚拟地址空间

 

 

      每个进程执行生命周期开始都是一个单线程,这个成为主线程,某时刻,主线程创建对等线程,就开始并发运行。 主线程和其他线程唯一区别就是他是第一个运行的

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    易语言面向对象编程 面向对象学习

    易语言面向对象学习 1 一.枯燥的理论 2 1.对象和类 2 2.类的“成员”与“方法” 2 3.实例化 2 4.继承 3 二.牛刀小试 3 1.定义一个类,生成实例对象 3 2.“_初始化” 与 “_销毁” 5 三.一个更丰富的“员工...

    plc面向对象编程架构与实现

    面向对象编程是计算机语言的一种先进的编程模式,在工业控制系统的PLC程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多特点如“继承”,甚至于它根本就不具备面向对象编程语言的特点,但面向对象编程...

    面向对象葵花宝典-电子版

    面向对象是目前最流行的一种程序设计和实现思想,无论你是从事企业级开发、互联网应用开发,还是手 机软件开发,都会使用到面向对象的技术;主流的编程语言中,C++,Java,C#,PHP,Python等都是支持 面向对象的语言;...

    面向对象概要设计模板

    面向对象概要设计模板 面向对象设计是一种软件设计方法,它强调对象之间的交互和协作,以达到软件系统的高内聚、低耦合的目标。在软件设计中,面向对象设计方法可以帮助开发者更好地理解系统的需求和行为,从而提高...

    实用面向对象软件工程教程

    本教程“实用面向对象软件工程教程”旨在深入探讨面向对象分析(OOA)和面向对象设计(OOD)的关键原则,帮助开发者构建高质量、可维护的软件系统。 在面向对象分析阶段,我们首先理解问题域,识别出关键实体和它们...

    Python 3面向对象编程

    Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...

    面向对象分析与设计UML2.0(PDF)

    详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。本书使用最常见的技术和方法,通过一个贯穿全书的案例分析,对面向对象的软件开发过程和使用面向对象技术的编程过程进行了...

    面向过程、面向对象、面向组件、面向服务软件架构的分析与比较

    面向过程、面向对象、面向组件、面向服务软件架构的分析与比较 软件开发历程与架构演进 软件开发从汇编语言、过程式语言、面向对象、面向组件发展到面向服务,这一进程不仅反映了编程技术的不断进步,更是软件工程...

    软件工程面向对象分析实验报告

    面向对象分析(Object-Oriented Analysis,OOA)是软件工程中的一种重要方法,它着重于从实际问题出发,抽象出问题域内的对象及其相互关系,以构建问题域模型。在“软件工程-张海藩编著--面向对象分析实验报告”中,...

    面向对象软件工程

    《面向对象软件工程》 作者:Stephen.R.Schach 学校:(美)范德比尔特大学 书名原名:Objected-Oriented Software Engineering 目录: 第一部分 面向对象软件工程简介  第一章 面向对象软件工程的范畴  第二章 ...

    java面向对象编程源码

    本书内容由浅入深,紧密结合实际,利用大量典型实例,详细讲解Java面向对象的编程思想、编程语法和设计模式,介绍常见Java类库的用法,总结优化 Java编程的各种宝贵经验,深入阐述Java虚拟机执行Java程序的原理。...

    漫画面向对象编程 Java

    借助于漫画展示的形式,面向对象的简、由类创建一个对象的方法、类的编写与对象的创建、类的构造函数、类的方法、修饰符、Java中的封装/继承/多态等特征、Java中的线程、用Java创建一个小世界、多线程共享数据,以及...

    C++面向对象程序设计教程——课件PPT

    C++是一种强大的编程语言,以其面向对象特性而闻名,它结合了过程化编程和面向对象编程的优势。在“C++面向对象程序设计教程——课件PPT”中,我们可以深入学习这一主题,由陈维兴和林小茶编著,清华大学出版社出版...

    面向对象JavaScript精要(英文原版pdf)

    ### 面向对象JavaScript精要 #### 一、书籍概览 本书《面向对象JavaScript精要》由Nicholas C. Zakas编写,是面向对象编程领域中的权威指南之一,尤其针对JavaScript这门语言。作者深入浅出地介绍了面向对象编程的...

    Matlab面向对象编程

    Matlab面向对象编程是一种在MATLAB环境下通过面向对象的方法来组织和构造程序代码的技术。面向对象编程(OOP)的基本特征包括抽象、封装、继承和多态。以下是根据给定的文件信息,对这些知识点的详细解释: 1. 抽象:...

    面向对象分析与设计1

    国外计算机科学经典教材-面向对象分析与设计(UML 2.0版) 简介:本书详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。 本书使用最常见的技术和方法,通过一个贯穿全书的...

    面向对象分析与设计.pdf

    由于提供的文件内容不包含实际的文本信息,而是重复的URL链接,因此无法从该部分提供有关面向对象分析与设计(OOAD)的知识点。但是,我将尽可能详细地介绍面向对象分析与设计的相关知识点,以满足您的需求。 面向...

Global site tag (gtag.js) - Google Analytics