| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 面试题目整理 -> 正文阅读 |
|
[系统运维]面试题目整理 |
其中进程和线程的问题及链表的问题提问几率极高 1.利用socket抓取网页
详情代码见:socket抓取网页 - phlsheji - 博客园https://www.cnblogs.com/bhlsheji/p/4660602.html 2.io多路复用:
3.哈希表的实现: ? ? ? ? 数组+哈希函数+冲突处理 4.单链表反转: ? ? ? ? 包括头指针共三个指针,依次读取一个节点就将其插入到头节点之后即可实现原地反转 5.C语言创建多进程/线程: ? ? ? ? 进程:?Linux下的多线程程序,需要使用头文件pthread.h,链接时需要使用库libpthread.a ????????线程:fork可以用来创建一个进程,当我们在一个循环体中,就可以多次fork,创建多个进程 6.进程线程的区别和进程的通信方式: ? ? ? ? 进程和线程的定义:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进 程是系统进行资源分配和调度的一个独立单位. ????????进程和线程的关系:一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.? ? ?相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。 ????????进程和线程的区别:?进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。简而言之,一个程序至少有一个进程,一个进程至少有一个线程. ????????进程的通信方式:? ? ? ? ?1.匿名管道(pipe)通信:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系???????????????
7.Linux性能监控命令
8.海量数据提取最大的k个数据:
? ? ? ? 最大堆和最小堆的变化方式? ?堆排序的平均时间复杂度为nlogn
? ? ? ? 最大堆最小堆的过程的时间复杂度为logn
9.死锁的四个必要条件
????????1、互斥条件:一个资源每次只能被一个进程使用;
? ? ? ? 2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放; ? ? ? ? 3、不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺; ? ? ? ? 4、循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系;
10.冒泡排序和快速排序的思路
? ? ? ? 冒泡排序:
???????(1)
?比较相邻的元素。如果第一个比第二个大,就交换他们两个。
????????(2)对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 ????????(3)针对所有的元素重复以上的步骤,除了最后一个。 ????????(4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
? ? ? ? 快速排序:
????????(1)首先设定一个分界值,通过该分界值将数组分成左右两部分
????????(2)将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值 ????????(3)然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。右侧的数组数据也可以做类似处理 ????????(4)重复上述过程,可以看出,这是一个递归定义。通过递归将左侧部分排好序后,再递归排好右侧部分的顺序。当左、右两个部分各数据排序完成后,整个数组的排序也就完成了 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 22:31:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |