栈:是限制在表的一端进行插入和删除运算的线性表
队列:也是一种运算受限的线性表。它只允许在标的一端进行插入,而在另一端进行删除。
1、进程是资源分配的单位
2、线程是操作系统调度的单位
3、进程切换需要的资源很最大,效率很低
4、线程切换需要的资源一般,效率一般(不考虑GIL)
5、协程切换任务资源很小,效率高
6、多进程、多线程根据cpu核数不一样可能是并行的,但是协程是在一个线程中 所以是并发
所谓封装,就是指隐藏内部的细节,不暴露在外面。
把构造函数里的this改成 _price;
在js里面,实现封装的方法非常简单,只需要在声明属性的时候,添加关键字即可。 一般来讲,对于私有属性,有一个不成文的规定,习惯使用_来命名属性。
封装后的属性(私有属性)对于外部来讲,虽然不可见,但是对于内部来讲,是可见的。
总结:封装后方法可以访问,但是属性信息都为undefined
可迭代对象:可以使用for循环遍历的对象,我们称之为可迭代对象
迭代器:提供数据和记录位置
生成器不是迭代器
在并发程序设计中,死锁是一种十分常见的逻辑错误。通过采用正确的编程方式,死锁的发生不难避免。
在编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。