五道题

1、队列和栈的区别:

队列(Queue):是限定只能在表的一端进行插入和另一端删除操作的线性表

栈(Stack):是限定之能在表的一端进行插入和删除操作的线性表

队列和栈的规则

队列:先进先出

栈:先进后出

队列和栈的遍历数据速度

队列:基于地址指针进行遍历,而且可以从头部或者尾部进行遍历,但不能同时遍历,无需开辟空间,因为在遍历的过程中不影响数据结构,所以遍历速度要快

栈:只能从顶部取数据,也就是说最先进入栈底的,需要遍历整个栈才能取出来,遍历数据时需要微数据开辟临时空间,保持数据在遍历前的一致性

2、线程,线程,和协程

进程:进程是系统进行资源分配和调度的⼀个独立单位.

线程:线程是进程的⼀个实体, 也叫轻量级进程,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有⼀点在运行中必不可少的资源。但是它可与同属⼀个进程的其他的线程共享进程所拥有的全部资源.

协程:协程执行过程中,在协程内部可中断,然后转而执行别的协程,在适当的时候再返回来接着执行。协程之间不是调用者与被调用者的关系,而是彼此对称、平等的,通过相互协作共同完成任务。

3、面向兑现的特点:封装,继承,多态

封装:

就是把抽象的数据和对数据进行的操作封装在一起,将属性和方法封装到一个抽象的类中

数据被保存在内部,程序的其他部分只有通过被授权的操作(成员方法)才能对数据进行操作。外界使用类创建对象,然后让对象调用方法

通过在实例上调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部的实现细节。对象方法的细节都被封装在类的内部

4、什么叫可迭代对象?迭代器?生成器是迭代器吗?

可迭代对象:

可迭代对象包含迭代器。

如果一个对象拥有__iter__方法,其是可迭代对象

迭代器:

一个对象拥有next方法,就是迭代器

生成器:

生成器不是迭代器

5、死锁:

1.关于死锁。 死锁,就是当多个进程或者线程在执行的过程中,因争夺共享资源而造成的一种互相等待的现象,一旦产生了死锁,不加人工处理,程序会一直等待下去,这也被称为死锁进程。

互斥锁:

只有当一个进程在进行资源的时候,进行上锁,可以保护资源,只有当他运行玩的时候,才会进行解锁。对数据的保护。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 必备的理论基础 1.操作系统作用: 隐藏丑陋复杂的硬件接口,提供良好的抽象接口。 管理调度进程,并将多个进程对硬件...
    drfung阅读 3,575评论 0 5
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,141评论 1 32
  • python之进程、线程与协程 有这么个例子说他们的区别,帮助理解很有用。 有一个老板想开一个工厂生产手机。 他需...
    道无虚阅读 3,214评论 0 3
  • 相关概念 面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. 多态的好处 允许不同类对...
    东经315度阅读 1,992评论 0 8
  • 我该如何喜欢上一个也喜欢我的人? 我又该如何不再孤零零的一个人? 什么又是喜欢?什么又是爱?
    井底的动物阅读 137评论 0 0