五个问题


队列和栈的区别:

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

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

队列和栈的规则

队列:先进先出

栈:先进后出

队列和栈的遍历数据速度

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

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

线程,线程,和协程

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

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

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

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

封装:

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

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

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

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

可迭代对象:

可迭代对象包含迭代器。

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

迭代器:

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

生成器:

生成器不是迭代器

死锁:

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

互斥锁:

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

你可能感兴趣的:(五个问题)