面试题,第四个模块定义
# GIL锁:python全局解释器锁,
# 假设一个进程有多个线程,当前线程执行的时候,就会抢到GIL锁,此时
# 其他线程不可以执行,如果该线程有耗时等待,则GIL锁会打开,会被其他线程
# 抢到,然后去执行。所以说,线程执行顺序是有先后的,不是同时执行的
#
# 操作系统:中断以及意义
# 计算机运行过程中,系统遇到了需要紧急处理的事件,会使cup暂时中断当前进程
# ,去执行需要紧急处理的事件,当紧急事件处理完毕,则CPU返回刚才中断的程序,
# 继续执行或者执行新的紧急事件。
# 作用:cup与外设同步工作,故障处理,实时处理
#
# 什么是同步I/O,异步I/O?
# 特们的区别就是:遇到I/O操作的时候,同步I/O会堵塞
#
# 进程,线程,多进程,多线程
# 进程:操作系统进行资源分配和调度的基本单位,多个进程之间
# 相互独立,稳定性好,一个进程崩溃,不会影响其他进程。但是资源消耗大,开启进程数量有限制
#
# 线程:CPU进行资源分配和调度的基本单位,同一进程下的多个线程共享资源
# 稳定性不好,一个线程崩溃,会导致进程崩溃。
#
# 多线程,I/O密集型用多线程,因为遇到I/O以后,可以切换到其他线程,减少等待时间
# 多进程:如果I/O操作比较少的话,一个线程运行的时候就会霸占GIL锁,其他的线程必须等待
# 效率不高,所以要充分利用多核优势,所以要用多进程
#
# 进程之间的通讯方式?
# 管道,共享内存,消息队列,套接字,信号量
#
# 内核态:可以将cup从一个进程,切换到另外一个进程,可以访问内存中的所有数据,包括外围设备
#
# 用户态:受限的访问内存,不循序访问外围设备,占用CPU的能力被剥夺,CPU可以被其他进程获取
#
# 多路复用:避免了非堵塞I/O轮番等待和询问的过程,把套接字交给select来监视
# ,等待内核数据到来以后,告诉线程数据可读,线程发送read请求,在内核中进行
# 数据拷贝,read完成。
-----------------------------------------------------------------------------------------------------------------------------------------