3 JanzeeLiu

尚未进行身份认证

暂无相关简介

等级
TA的排名 5w+

华为机试1

写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。第一行输入一个有字母和数字以及空格组成的字符串,第二行输入一个字符。输出输入字符串中含有该字符的个数。诀窍:使用count函数,#include<algorithm>, count (InputIterator first, InputIterator...

2020-03-11 15:56:30

华为机试

写出一个程序,接受一个十六进制的字符串,输出该数值的十进制字符串表示。(多组同时输入 )代码如下。注意printf的头文件是#include "stdio.h",printf("%s\n",buf);可以直接输出字符数组; 什么时候输入结束,使用while(cin>>str)判断; map的使用,使用map构造一个字典; 空字符数组的初始化方式,char buf[]={}...

2020-03-10 14:54:05

对于TKeed的一些思考

首先介绍一下线程数目应该创建多少个 应用程序最小线程数应该等于可用处理器核数。 如果所有任务都是计算密集型的,则创建处理器核心数那么多个线程就可以了,在这种情况下,创建更多的线程对程序性能而言反而是不利的,因为当多个任务处于就绪状态时,处理器核心需要在线程间频繁进行上下文切换,而这种切换对程序性能损耗很大;而且线程的创建是需要消耗内存资源的。 如果任务都是IO密集型的,那么我们就需要开更多的...

2019-09-20 10:11:34

百度面试准备

如何设计操作系统内核 进程管理、处理机调度、存储器管理、设备管理、文件管理。 对于程序员,操作系统需要提供很多系统调用函数接口,来对内核进行处理,所以内核应该包含很多内核程序,它们是操作系统最常用的基本模块,直接与硬件打交道。内核程序占据内存一部分内存。应该有一些程序比如SHELL,编辑器,编译器来与用户进行交互。 对于显卡的驱动,因为要在PC上显示文字,需要显示器和显卡两个设备,显示器负责...

2019-09-15 23:29:23

美团面试准备之数据库

美团重点就是数据库、linux、java上,感觉只要你的java和数据库好就能进,恰巧,我是搞C++的,数据库不咋熟悉。 数据库的事务,具体在代码里怎么实现事务。比如:我往一个表里插入一个a再插入一个b再插入一个 redis数据库跟本地数据库有什么区别吗 redis实际工作中有用到过吗? 数据清洗是怎么清洗的 什么情境下会用到redis? 数据库熟悉吗?(不熟悉啊,没关系,我问几个问题...

2019-09-16 13:39:31

美团面试准备之操作系统

互斥锁和排他锁❌ 多线程编程有了解吗? Linux命令(问了接近10个小问题吧):怎么修改一个文件的权限、怎么查询一个文件的最后10行(tail),那怎么找出含有关键字的行的前后4行(不会了),怎么查询一个网络情况 暂停一个正在运行的程序,将其放到后台 ctrl+Z//暂停任务bg//放到后台fg//拉到前台 文件和目录授权管理 chmod用于改变文件...

2019-09-16 13:42:39

bigo面试准备一

多继承 一个类继承了多个类。 多继承下的构造函数 先调用基类的构造函数,再调用子类构造函数,基类构造函数调用顺序与声明派生类时继承基类的顺序一致。在子类声明构造函数时,可以在初始化列表显示构造,也可以不写,隐式调用基类的构造函数。 多继承下的析构函数 析构先析构子类,再按照与声明子类时继承基类顺序的相反顺序来析构。析构顺序与构造顺序相反。 菱形问题 当多继承的父类拥有更高的...

2019-09-15 20:05:47

TKeed之webench之压测

前面介绍了resquest结构体的构建,现在来介绍压测函数的编写。首先介绍webbench的原理,它主要通过fork()函数产生很多子进程,模拟多个客户端, bench(), static int bench(void) static int bench(void){ int i,j,k; pid_t pid=0; FILE *f; /* check...

2019-09-15 16:55:58

TKeed之webbench测压之request报文的构建

构造request请求行 请求行的请求方法:GET,HEAD,OPTIONS,TRACE 请求行的URL:http://127.0.0.1:3000/index.html 请求行协议版本号:HTTP/0.9、HTTP/1.0、HTTP/1.1 构造request请求头 第一个头部关键字:值 User-Agent: WebBenchUser Agent中文名为用户代理,简称...

2019-09-15 16:23:52

线程创建方式

什么是线程? 进程是运行中的程序,多个进程实现了操作系统的并发;多个线程实现了进程的并发,是操作系统进行计算和调度的基本单位,进程有多个线程以完成不同的任务。同一进程下的多个线程共享内存空间和文件描述符等,所以线程之间通信要比进程通信方便的多,但是线程也有自己的独立空间,比如线程栈,它是其他线程不能访问的,线程栈从进程堆上分配内存,通过 ulimit -a可以查看线程栈大小为8M,为了防止其他线...

2019-08-31 00:17:50

TKeed源码解析之静态文件请求处理

前面做了这几件事:解析请求行 解析请求头 解析URI 对错误情况(404,403)进行处理,并读取了文件的inode信息,存储在结构体里面 处理请求头几种情况,并将请求头的处理结果存在out中 现在来处理静态文件请求先来看下HTTP的响应报文格式。基本由三部分组成:状态行响应头部响应正文协议版本空格状态码空格状态码描述符回车符换行符头部字段名:值回车符换行...

2019-09-13 21:12:37

TKeed源码解析之几种头部字段的处理

前面已经对请求行和请求头进行了处理,还有对URI也进行了处理,也处理了资源找不到和资源不允许访问的情况。下面讲一下,对于请求头几种头部字段的处理,头部字段名有这几个类型:Host,Connection,If-Modified-Since和什么都没有;它们都有各自的处理函数。Host:初始URL中的主机和端口。Connection:表示是否需要持久连接。如果Servlet看到这里的值为“Kee...

2019-09-13 19:49:34

TKeed源码解析之URI解析

前面对request报文请求行和请求头进行了解析,现在来对uri进行解析。uri存在于请求行中,Uniform Resource Identifiers统一资源标识符,用于在互联网上标志一个资源,完整的URI主要由以下三种形式:<scheme>:scehme-specific-part#<fragment><scheme>://<authori...

2019-09-13 15:52:49

TKeed源码之解析request请求头

前面解析了request请求报文的行。现在介绍对请求头的解析,解析就是将头部字段名和对应的值存储起来,存在下面的结构体里面,再把结构体放到链表里。typedef struct tk_http_header{ void* key_start; void* key_end; void* value_start; void* value_end; str...

2019-09-13 15:26:15

TKeed源码解析之request结构体解析

首先看下HTTP请求报文结构method空格URL空格version回车换行符头部字段名:值回车换行符...头部字段名:值回车换行符回车换行符请求数据其中回车是'\r',换行符是'\n'。具体地可以看一个例子。GET /search?hl=zh-CN&source=hp&q=domety&aq=f&oq= HTTP/1.1 Ac...

2019-09-12 22:57:49

TKeed之处理超时请求

前面使用epoll_wait将就绪事件从内核读取到用户数组里之后,需要处理事件。其中包括对超时事件的处理。tk_handle_expire_timers();tk_pq_t tk_timer;//优先队列是全局变量void tk_handle_expire_timers(){ while(!tk_pq_is_empty(&tk_timer)){ // 更...

2019-09-12 14:12:51

数据库查询优化的方法

使用索引 尽量避免全局搜索,为经常被where,order by,group by访问的字段建立索引。 优化sql语句 使用exlpain查看select查询过程,可以帮助更好地选择索引和优化查询 不要返回不使用的列; 不对索引使用运算符和函数; 使用limit减少返回行数。 优化sql语句 优化数据库 对表进行拆分,有垂直拆分和水平拆分,垂直拆分将一个表分成多个表,把主...

2019-09-12 12:58:43

招商银行面试准备

项目相关,并发多少,有没有压测 mysql事务ACID A是指原子性,一件事务要么全部完成,要么全部不完成; C是指一致性,执行事务前后,数据保持一致,多个事务对同一数据的读取结果是相同的; I是指隔离性,并发访问数据时,各个事务之间是相互独立的; D是持久性,是指一件事务完成之后,对数据库的操作是永久性的。 并发事务带来的问题 脏读 读取了脏数据,脏数据是...

2019-09-11 20:00:47

死锁

软、硬件资源的抢占都会导致死锁的产生。资源分为可抢占资源和不可抢占资源。可抢占资源是它可以被其他进程抢占而不产生副作用。不可抢占资源是资源被一个进程占有期间,不可以被剥夺占有权,例如CD刻录机,它的抢占会导致刻录机划坏。死锁与不可抢占资源有关。死锁的规范定义如下:如果一个进程集合中的每一个进程都在等待只能由本进程集合其他进程才能引发的事件,那么该组进程是死锁的。死锁发生的四个必要条...

2019-09-07 11:14:17

内核态和用户态

Linux体系架构分为用户态和内核态,内核本质上是一种软件,为上层应用程序提供访问接口,就是系统调用,系统调用本质也是一种中断,它是一种软中断。 系统调用是操作系统最小的功能单位,LINUX提供大致260个系统调用函数。 库函数实现了对系统调用的封装,为用户提供简单的业务逻辑接口。 shell是一种特殊的应用程序,下通系统调用,上通各种应用。 总的来说,用户态的应用程序可以通过三种方式操作...

2019-09-06 20:40:20

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取