竹笋

首页 » 问答 » 常识 » ThinkPHP5分析Part1
TUhjnbcbe - 2021/4/23 19:42:00
北京治皮肤科最好医院 http://pf.39.net/bdfyc/140106/4322698.html
众所周知,字节跳动内部的后端开发大多数都是使用go语言的,那么一般go语言的面试会问哪些问题?

这个一般分为两个层次,初中级开发(1-1、1-2)和高级开发(2-1、2-2),不同级别的面试一般要求是不一样的。对于初中级开发,一般会问一些语言层面的东西,一些常用的基础原理和一些算法,但是高级开发就没那么简单了。下面我为读者分享一段面试的经历。

面试官:你平常使用什么编程语言比较多?

面试者:go。

面试官:好的,那我们聊一下一些go相关的问题吧。

面试者:好的。

面试官:用过fallthrough关键字吗?这个关键字的作用是什么?

面试者:其他语言中,switch-case结构中一般都需要在每个case分支结束处显式的调用break语句以防止前一个case分支被贯穿后调用下一个case分支的逻辑,go编译器从语法层面上消除了这种重复的工作,让开发者更轻松;但有时候我们的场景就是需要贯穿多个case,但是编译器默认是不贯穿的,这个时候fallthrough就起作用了,让某个case分支再次贯穿到下一个case分支。

面试官:go中除了加Mutex锁以外还有哪些方式安全读写共享变量?

面试者:go中Goroutine可以通过Channel进行安全读写共享变量。

面试官:无缓冲Chan的发送和接收是否同步?

面试者:举两个例子:

//无缓冲的channel由于没有缓冲发送和接收需要同步.ch:=make(chanint)//有缓冲channel不要求发送和接收操作同步.ch:=make(chanint,2)

因此channel无缓冲时,发送阻塞直到数据被接收,接收阻塞直到读到数据;channel有缓冲时,当缓冲满时发送阻塞,当缓冲空时接收阻塞。

面试官:请谈一谈go语言的并发机制以及它所使用的CSP并发模型。

面试者:CSP模型是上个世纪七十年代提出的,不同于传统的多线程通过共享内存来通信,CSP讲究的是“以通信的方式来共享内存”。用于描述两个独立的并发实体通过共享的通讯channel(管道)进行通信的并发模型。CSP中channel是第一类对象,它不

TUhjnbcbe - 2021/4/23 19:42:00

ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。

先放上一个图示方便理解

然后放上目录结构

├─application应用目录(可设置)│├─

1
查看完整版本: ThinkPHP5分析Part1