python基础笔试面试题_Python 【基础面试题】

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

Python 【基础面试题】 http://www.bieryun.com

8f933887e950352a82785e6d4443fbf2b2118b1e.jpg

阅读目录

前言

Python 三程三器

Python 面向对象

Python 常识概念

前言

面试题仅做学习参考,学习者阅后也要用心钻研其中的原理,重要知识需要系统学习、透彻学习,形成自己的知识链。以下五点建议希望对您有帮助,早日拿到一份心仪的offer。

做好细节工作,细致的人运气不会差

展现特别可以,但要建立在已充分展示实力的基础上

真诚比圆滑重要,请真诚地回答问题

把握当下,考场外的表现能起的作用微乎其微

没有通过不代表你不优秀,选人先考虑的是与岗位相匹配

Python 三程三器

进程

进程是资源分配的最小单位(内存、CPU、网络、io)

一个运行起来的程序就是一个进程

什么是程序(程序使我们存储在硬盘里的代码)

硬盘(256G)、内存条(8G)

当我们双击一个图标、打开程序的时候,实际上就是通过IO(读写)内存条里面

内存条就是我们所指的资源

CPU分时

CPU比你的手速快多了,分时处理每个线程,但是由于太快然你觉得每个线程都是独占cpu

cpu是计算,只有时间片到了,获取cpu,线程真正执行

当你想使用 网络、磁盘等资源的时候,需要cpu的调度

进程具有独立的内存空间,所以没有办法相互通信

进程如何通信

进程queue(父子进程通信)

pipe(同一程序下两个进程通信)

managers(同一程序下多个进程通信)

RabbitMQ、redis等(不同程序间通信)

为什么需要进程池

一次性开启指定数量的进程

如果有十个进程,有一百个任务,一次可以处理多少个(一次性只能处理十个)

防止进程开启数量过多导致服务器压力过大

线程

有了进程为什么还需要线程

因为进程不能同一时间只能做一个事情

什么是线程

线程是操作系统调度的最小单位

线程是进程正真的执行者,是一些指令的集合(进程资源的拥有者)

同一个进程下的读多个线程共享内存空间,数据直接访问(数据共享)

为了保证数据安全,必须使用线程锁

GIL全局解释器锁

在python全局解释器下,保证同一时间只有一个线程运行

防止多个线程都修改数据

线程锁(互斥锁)

GIL锁只能保证同一时间只能有一个线程对某个资源操作,但当上一个线程还未执行完毕时可能就会释放GIL,其他线程就可以操作了

线程锁本质把线程中的数据加了一把互斥锁

mysql中共享锁 & 互斥锁

mysql共享锁:共享锁,所有线程都能读,而不能写

mysql排它锁:排它,任何线程读取这个这个数据的权利都没有

加上线程锁之后所有其他线程,读都不能读这个数据

有了GIL全局解释器锁为什么还需要线程锁

因为cpu是分时使用的

死锁定义

两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去

多线程

为什么要使用多线程?

线程在程序中是独立的、并发的执行流。与分隔的进程相比,进程中线程之间的隔离程度要小,它们共享内存、文件句柄

和其他进程应有的状态。

因为线程的划分尺度小于进程,使得多线程程序的并发性高。进程在执行过程之中拥有独立的内存单元,而多个线程共享

内存,从而极大的提升了程序的运行效率。

线程比进程具有更高的性能,这是由于同一个进程中的线程都有共性,多个线程共享一个进程的虚拟空间。线程的共享环境

包括进程代码段、进程的共有数据等,利用这些共享的数据,线程之间很容易实现通信。

操作系统在创建进程时,必须为改进程分配独立的内存空间,并分配大量的相关资源,但创建线程则简单得多。因此,使用多线程来实现并发比使用多进程的性能高得要多。

总结起来,使用多线程编程具有如下几个优点:?

进程之间不能共享内存,但线程之间共享内存非常容易。

操作系统在创建进程时,需要为该进程重新分配系统资源,但创建线程的代价则小得多。因此使用多线程来实现多任务并发执行比使用多进程的效率高

python语言内置了多线程功能支持,而不是单纯地作为底层操作系统的调度方式,从而简化了python的多线程编程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值