1、二分查找法
数据采用顺序存储结构
必须按照关键字大小有序排列(升序或者降序)

2、装饰器
- 外层函数内嵌内层函数
- 外层函数返回内层函数
- 内层函数调用外层函数的参数
手写一个装饰器,计算函数运行时间



3、列表生成式

4、列表生成器

5、函数生成器

6、多线程环境下面的单列模式
单例模式是指,该对象创建后,在其生命周期内内存中始终只有一个对象, 如果被再次调用时,还是返回该对象。
这样做的好处是,可以节约内存,缺点是不可以根据不同的应用场景创建不同的对象。
多线程环境下,由于单例模式总是会去判断 实例是否被创建,但是多个线程有可能会拿到相同的结果,这样就无法实现单例模式了,因此遇到多线程的环境时,需要加锁。
加了锁之后,每个线程判断 if cls.instance is None 这里就变成了线程安全。因此可以实现多线程环境下,始终只有一个实例
多线程单例模式:


多线程
冒泡排序

斐波那契数列

网友评论