同步就是在一个功能调用时,在没有得到结果之前,该调用就不返回。也就是一件一件事做,等前一件做完了才做下一件事。
异步和同步相对,当一个异步过程调用出发后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态,通知和回调来通知调用者。
阻塞IO的特点: 就是在IO执行的两个阶段(等待数据 和拷贝数据两个阶段)
非阻塞忙轮询:数据没来,进程就不停的去检测数据,直到数据来
阻塞:数据没来,啥都不做,直到数据来了,才进行下一步的处理
非阻塞IO模型 优点:实现了同时服务多个客户端,能够在等待任务完成的时间里干其他活了,包括提交其他任务
缺点:不停的轮询recv,占用较多的cpu资源
对应BlockingIOError的异常处理也是无效的CPU花费
如何解决:多路复用IO
多路复用IO:把socket交给操作系统去监控,相当于找个代理人(select)去收快递。快递到了,就通知用户,用户自己去取。
阻塞I/O只能阻塞一个I/O操作,而I/O复用模型能够阻塞多个I/O操作,所以才叫多路复用。
Linux的根目录与家目录的区别:
Linux的根目录是目录的最高层,所有文件都在根目录下面,而根目录下有bin,etc,root,mnt,等文件目录,而家目录在/home用户名里面
linux操作系统的文件系统有哪些?各有什么特点?
ext: 专门为linux核心做的第一个文件系统。单个文件最大限制未知;该文件系统最大支持2GB的容量。
ext3:一个日志文件系统。单个文件最大限制16TB,该文件系统最大支持32TB的容量。
ext4:
Theodore Tso领导开发团队实现,linux系统下的日志文件系统,单个文件最大限制16TB,该文件系统最大支持1EB的容量。
ntfs:Windows2000 以后的版本使用,是windows系统当中的一个文件管理系统,有更加出色的文件管理能力和磁盘管理能力。
特点:NTFS系统能够为计算机中的文件提供安全的文件保障,并且能够支持文件加密的功能;
2.NTFS提供的磁盘具有更快,压缩率更高的特点
3。NTFS最大能够支持容量高达2TB的超大硬盘,而且随着磁盘容量的不断增大,他它的性能也完全不会降低。
4.用户可根据自己电脑的实际情况赋予NTFS文件系统中的单个文件夹和文件夹一定的权限,极大提高计算机操作的安全性和可靠性;
5.传输文件和数据的时候会更快;
6.NTFS文件系统具有非常低的故障出现几率,而且具有一定的自我修复能力。
7.有非常高的磁盘利用率
sqlite3和mysql的区别:
sqlite3功能简约,小型化,追求最大磁盘效率,功能少,属于本地数据库,多用于读多写少,100w以下的数据,不支持分布式;
mysql功能全面,综合化,追求最大并发效率