开一个面试记录帖子

7.24 面试:学深智能

1.问到环境问题:docker 当时好像没有答好

# docker的话 就是编写好dockerfile镜像文件 
# 然后生成镜像 执行指令docker build -t dockerfilename .
# 查看镜像docker image ls
# 运行容器
docker run firstdocker

2.redis和mysql区别 :

我没答出很多 只答出了 mysql是关系型数据库 将数据存储在硬盘里面的 所以可以存储大量数据 但是因为在数据存储在硬盘上,所以读写速度比较慢。 redis是基于key,value的nosql非关系型数据库,是将数据存储到内存上的,所以读取速度很快,但无法存储大量数据。一般生产中Mysql为主Redis为辅组

3.高并发如何处理

当时讲了celery 通过异步方式来解决 不知道对不对

但后面应该更多使用redis来作为消息队列 来解决高并发的问题(不知道是不是这样的 欢迎告知)

4.多线程和多进程的区别

我讲了一下线程的概念 :资源调度的基本单位

进程的概念:资源分配的基本单位

然后线程的话:GIL(Global Interpreter Lock)全局解释锁 这个锁本身是一个互斥锁 就是让解释器变成临界资源,这样在同一个时刻 只有一个线程可以运行python 字节码 其他的线程因为无法拿到这个GIL锁 所以就只能阻塞了 所以这个GIL使得这个Python多线程是一个假的多线程

对于CPU密集型的任务:单个进程下,开启多个线程,无法实现并行,只能实现并发,牺牲执行效率。

由于GIL锁的限制,所以多线程不适合计算密集型任务,更适合IO密集型任务(因为在IO等待的时候GIL的锁会被线程释放,其他线程就会竞争使用这个GIL锁)

4.对显卡有什么了解

查看显卡使用情况 NVITOP 可以查看显卡的显存的使用情况

可以用nvidia -smi -l 可以查看到GPU的使用率,温度,显存等信息

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务