1.python是如何进行内存管理的?

当内存中有不再使用的部分时,垃圾收集器就会把他们清理掉
Python引入了机制:引用计数与分代回收。
Python提供了对内存的垃圾收集机制,

但是它将不用的内存放到内存池而不是返回给操作系统。

2.谈谈你对线程安全的理解?

线程安全就是多线程访问时,采用了加锁机制,
当一个线程访问该类的某个数据时,进行保护,
其他线程不能进行访问直到该线程读取完,其他线程才可使用。
不会出现数据不一致或者数据污染。

3.事务的特性 ?
1.原子性
2.一致性
3.隔离性

4.持久性

4.什么是阻塞,什么是非阻塞?

阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。
非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。

5.父子进程间有哪些异同,是否共享数据?(共享哪些数据?)

父子进程共享“文件表项”(file对象),同dup一样,这会增加“文件达开计数”
(file对象的引用计数),只不过fork增加的引用计数来自不同进程(父进程和子进程)
中的描述符,dup增加的引用来自同一文件描述符。
但父子进程独立运行后再打开的文件就不在共享file对象,
这个两个独立进程打开文件情况一样。
父子进程传递文件描述符和两独立进程传递描述符性质一样。

共享数据是线程  
创建一个线程后他们的数据是共享的   
他们是同一个数据

6.Mysql的常用引擎及选择?

1.Innodb引擎,Innodb引擎提供了对数据库ACID事务的支持。
并且还提供了行级锁和外键的约束。
它的设计的目标就是处理大数据容量的数据库系统。
它本身实际上是基于Mysql后台的完整的系统。
Mysql运行的时候,Innodb会在内存中建立缓冲池,用于缓冲数据和索引。
但是,该引擎是不支持全文搜索的。同时,启动也比较的慢,它是不会保存表的行数的。
当进行Select count(*) from table指令的时候,需要进行扫描全表。
所以当需要使用数据库的事务时,该引擎就是首选。
由于锁的粒度小,写操作是不会锁定全表的。
所以在并发度较高的场景下使用会提升效率的。

2.MyIASM引擎,它是MySql的默认引擎,但不提供事务的支持,也不支持行级锁和外键。
因此当执行Insert插入和Update更新语句时,即执行写操作的时候需要锁定这个表。
所以会导致效率会降低。不过和Innodb不同的是,MyIASM引擎是保存了表的行数,
于是当进行Select count(*) from table语句时,可以直接的读取已经保存的值而不需要进行扫描全表。
所以,如果表的读操作远远多于写操作时,并且不需要事务的支持的。
可以将MyIASM作为数据库引擎的首先。

python面试总结(五)内存管理与MYSQL引擎选择相关推荐

  1. python释放变量内存_2020Python面试题:Python是如何进行内存管理的?

    Python面试,Python面试题 一.垃圾回收: Python不像C++,Java等语言一样,他们可以不用事先声明变量类型而直接对变量进行赋值.对Python语言来讲,对象的类型和内存都是在运行时 ...

  2. linux内存实验,LINUX编程-实验五 内存管理实验

    实验五内存管理实验 1.目的要求 (1)学习使用内存管理库函数. (2)学习分析.改正内存错误. 2.实验内容 (1)内存库函数实验 ●malloc函数 原型:extern void *malloc( ...

  3. python 如何进行内存管理,python面试题之Python是如何进行内存管理的

    python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时,这个对象的引用计数为0时,它被垃圾回收. ...

  4. Python基于值的内存管理真相

    Python采用基于值的内存管理方式,如果为不同变量赋值为相同值,这个值在内存中只保存一份,多个变量指向同一个值的内存空间首地址,这样可以减少内存空间的占用,提高内存利用率. Python启动时,会对 ...

  5. python是如何进行内存管理的

    Python引入了一个机制:引用计数. python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时, ...

  6. IOS面试_1.浅析内存管理

    为了开学的面试,就在博客里总结一下面试会问到的问题,今天就来谈谈内存管理,看到一篇文章非常不错,http://vinceyuan.cnblogs.com/,深入浅出,推荐大家去看看! Objectiv ...

  7. Python是如何进行内存管理的?

    Python引用了一个内存池(memory pool)机制,即Pymalloc机制(malloc:n.分配内存),用于管理对小块内存的申请和释放 内存池(memory pool)的概念: 当 创建大量 ...

  8. Python源码阅读-内存管理机制(一)

    Python的内存管理架构 基本分层 在Objects/obmalloc.c源码中, 给了一个分层划分 _____ ______ ______ ________[ int ] [ dict ] [ l ...

  9. linux c 将虚拟地址转化为物理地址_面试不懂 Linux 内存管理?我用 20 张图给你讲明白...

    微信搜索公众号「 后端技术学堂 」回复「1024」获取50本计算机电子书,回复「学习路线」获取超详细后端技术学习路线思维导图,文章每周持续更新,我们下期见! 大家好,我是柠檬哥. 分享编程学习,助力程 ...

最新文章

  1. java mvc view_对Springmvc view层的理解
  2. CodeChef CBAL
  3. 真人秀制作网站_[BoA] 出道20周年真人秀Nobody Talks To BoA上演与李秀满总制作人充满默契的对话!...
  4. 伪静态设置 html,Apache下伪静态html(URL Rewrite)的设置方法
  5. SQL Server 执行 字符串
  6. 实战07_SSM整合ActiveMQ支持多种类型消息
  7. 离线部署 CDH 6.2 及使用 CDH 部署 Hadoop3 大数据平台集群服务
  8. Hadoop CDH4.5 MapReduce MRv1 HA方案实战
  9. wpf 导航按钮去掉_高德地图推出个性导航,你的私人订制导航是什么样的?
  10. c语言自动阅卷系统概要设计,VC++自动阅卷系统设计与实现(源代码及全套资料).doc...
  11. JavaScript实现单击上一张和下一张按钮切换图片
  12. 解决kindle刷多看系统的问题
  13. codelldb-x86_64-windows.vsix 下载
  14. 基于uniapp的QQ小程序开发(前端篇)
  15. python 导入自定义包
  16. Bmob后端云的使用
  17. idea 2019激活置2099年教程 diea版本为2018.3版
  18. 华硕天选2/系列切换应用声音消失问题的解决方法
  19. .net mvc core网站发布的几种方式
  20. 基于springboot+mybatis+mysql+html实现校园疫情防控管理系统

热门文章

  1. c++学习书籍推荐《超越C++标准库:Boost库导论》下载
  2. Android MVP模式简单易懂的介绍方式 (一)
  3. centos7 qt之程序编译 cant start process “cmake”
  4. selenium-05-常见问题
  5. asp.net cookie操作-添加cookie,添加键值,移除cookie,移除键值
  6. 将MYSQL查询导出到文件
  7. 《大话设计模式》读书笔记-建造者模式
  8. 打印网页时背景图片的问题
  9. 手机是怎么确定位置信息的?
  10. 单片机控制小风扇马达c语言,模拟风扇控制电路(单片机C程序设计)