前言
毕业了就来到北京找工作,学校的日子里虽然有工作经验,但只是拿轮子来用,从来没有深究过轮子是怎么来的,更别提自己造轮子了,这也为面试留下了太多的坑,还是找到了一家公司,并不需要新的vue,node等等,就在这边修炼进阶吧。
问题汇总
Q:了解线程吗?两个线程共用一个资源是怎么分配的?
- 回答了解,面试官就接着往下问了,想试着解释一波线程,没给机会。
- 我把线程和进程弄混了,这里答得不好,然后请教面试官,他说当多个线程共用一个资源的时候就要给这个资源加锁以隔离,一部分线程是能通过这个锁使用这个资源,另一部分则不能通过这些锁。大概就是这么讲的。
- 面试完就马上想起来了曾经有学过这个在软件工程课上,回来以后自己google了下线程,大体是这样理解的,多个线程共用某个资源时给资源加不同种类的锁来加以隔离,比如有读锁和写锁,通过锁来确定当前资源的使用者,这样可以尽量避免死锁的问题。 多线程的优点是提高了程序的执行吞吐率,在单cpu单核的机器上也可以提高IO设备等的运行效率,提高利用率。
Q:数据库的权限应该如何设计,分为几个表?(以一个论文管理系统为例)
- 这里我答的并不好,因为没有理清对象之间的关系,只答出了用户表,角色表,在面试官的提示下说出来了权限表,这是基础知识,答不上来只能怪自己。
- 回来google后大体了解了该如何设计这个数据库了,一共有三张表,用户表,角色表,权限表,对应的也是三个对象,用户与角色、权限之间的关系是多对多,一个用户可以有多个角色,多种权限,反之相同。角色如老师,学生,管理员是上下级关系。权限也是上下级关系,是一个树状结构。
- 对象关系理清以后就好说了,分别是用户表,角色表,权限表。最少需要这三张表来定义网站用户登录后进入的到底是哪一个页面,判定用户身份和权限。再具体的可以搜索引擎下。
Q:有没有了解到页面展示各种柱状图,饼图等如何用js实现?
- 面试的时候面试官有提到threejs和百度的xmind,一开始没记起来百度的xmind就是百度脑图,回来百度了下,后面自己写一个通过js转换为饼图再贴上来。感兴趣的自己引擎了解下。
- 因为这家公司是做电子屏展示的,央视的导播屏啊,公安系统的报警屏啊,监控屏啊等等展示数据图,饼图啊柱状图啊等等,所以会用到这一点,还是挺重要的。