2019/7/1秋招面经学习笔记

1.乐观锁和悲观锁乐观锁是总是假定最好的情况,每次别人去拿数据都认为别人不会去修改,所以不用上锁。但是会在更新的时候判断一下在此期间别人有没有去更新这个数据。实现方法有二,版本号机制和CAS算法。乐观锁是用于多读的类型,这样可以提高数据吞吐量。在多写的情况下每次冲突发生,都会retry,反而降低性能。悲观锁总是假定最坏的情况,每次去拿数据都认为别人会修改,所以每次都会上锁。其他人向要拿到这...
摘要由CSDN通过智能技术生成

1.乐观锁和悲观锁

乐观锁

是总是假定最好的情况,每次别人去拿数据都认为别人不会去修改,所以不用上锁。但是会在更新的时候判断一下在此期间别人有没有去更新这个数据。实现方法有二,版本号机制和CAS算法。乐观锁是用于多读的类型,这样可以提高数据吞吐量。在多写的情况下每次冲突发生,都会retry,反而降低性能。

悲观锁

总是假定最坏的情况,每次去拿数据都认为别人会修改,所以每次都会上锁。其他人向要拿到这个数据都会被阻塞直到它拿到锁。适用于多写的场景。

乐观锁版本号机制

一般是在数据表中加上一个数据版本号version字段,表示数据被修改的次数。当数据被修改时,version值加一,当线程A准备更新数据的时候,在读取数据的同时也会读取version的值,在提交更新的时候,若前后version值相等才更新,否则重试更新操作直到成功。

CAS(compare and swap)算法

是一种有名的无锁算法,在不适用锁的情况下实现多个线程间的变量同步,因此也叫非阻塞同步(Non-blocking synchronization)。

2. static关键字

static全局变量和普通全局变量的区别

存储方式都一样,已初始化的存入进程数据段,未初始化的放入bss段。
作用域不相同。普通全局变量在各个源文件内都是有效的,static全局变量只能在它定义的源文件中使用,可以避免在其他源文件引起错误。

static局部变量和普通局部变量的区别

存储方式不同:static局部变量被保存在数据段或bss段,普通局部变量只有在函数被调用的时候会保存到栈空间。
作用域不同:static局部变量在源文件的所有函数都可以使用,局部变量只能在函数内使用。

static函数与普通函数

普通函数的定义和声明是默认extern的,在源程序的所有文件都可见。static只在本文件可见,且不能被其他文件所用。

3. 数据库索引

完整参考:https://www.jb51.net/article/140749.htm
详细讲了聚集索引,辅助索引

4.poll,epoll,select的区别

  • 1.他们都能提供多路IO复用的解决方案,epoll是linux特有的,select是posix所规定的,一般操作系统都有实现。
  • 2.对于select来说,单个进程能监听的文件描述符数量是有上限的,底层实现为数组,32位系统最大支持1024个文件描述符。64位系统则为2048个。对socket扫描是线性扫描,即轮询的方式。效率较低。维护一个用于存放fd的数据结构,每次调用都会先将用户输入复制到内核空间然后对数组进行线性遍历。因此,监听的文件描述符越多,select的效率就会越低。
  • 3.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
旅游社交小程序功能有管理员和用户。管理员有个人中心,用户管理,每日签到管理,景点推荐管理,景点分类管理,防疫查询管理,美食推荐管理,酒店推荐管理,周边推荐管理,分享圈管理,我的收藏管理,系统管理。用户可以在微信小程序上注册登录,进行每日签到,防疫查询,可以在分享圈里面进行分享自己想要分享的内容,查看和收藏景点以及美食的推荐等操作。因而具有一定的实用性。 本站后台采用Java的SSM框架进行后台管理开发,可以在浏览器上登录进行后台数据方面的管理,MySQL作为本地数据库,微信小程序用到了微信开发者工具,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得旅游社交小程序管理工作系统化、规范化。 管理员可以管理用户信息,可以对用户信息添加修改删除。管理员可以对景点推荐信息进行添加修改删除操作。管理员可以对分享圈信息进行添加,修改,删除操作。管理员可以对美食推荐信息进行添加,修改,删除操作。管理员可以对酒店推荐信息进行添加,修改,删除操作。管理员可以对周边推荐信息进行添加,修改,删除操作。 小程序用户是需要注册才可以进行登录的,登录后在首页可以查看相关信息,并且下面导航可以点击到其他功能模块。在小程序里点击我的,会出现关于我的界面,在这里可以修改个人信息,以及可以点击其他功能模块。用户想要把一些信息分享到分享圈的时候,可以点击新增,然后输入自己想要分享的信息就可以进行分享圈的操作。用户可以在景点推荐里面进行收藏和评论等操作。用户可以在美食推荐模块搜索和查看美食推荐的相关信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值