上海恺英网络科技有限公司面试题
来源:互联网 发布:网络综艺点击量排行榜 编辑:程序博客网 时间:2024/04/24 05:34
1.多线程同步与互斥的几种方式? (2)互斥锁值只能为0/1,信号量值可以为非负整数。 (3)互斥量的加锁和解锁必须由同一线程分别对应使用,信号量可以由一个线程释放,另一个线程得到。 deque:(内部数据结构是数组) List/set/map:(List内部数据结构是双向环状链表、set/map内部数据结构是平衡检索二叉树即红黑树)
答:临界区、互斥锁、信号量、事件
2.接第一题,互斥锁与信号量的区别?
答:(1)互斥锁用于线程的互斥,信号量用于线程的同步。
这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。
互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问 者对资源的访问顺序,即访问是无序的。
同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情 况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许 多个访问者同时访问资源。
也就是说,一个互斥量只能用于一个资源的互斥访问,它不能实现多个资源的多线程互斥问题。信号量可以实现多个同类资源的多线程互斥和同步。当信号量为单值信号量时,也可以完成一个资源的互斥访 问。
3.常见容器的迭代器失效的情况?(引起迭代器失效的原因是内存发生了改变)
答:vector:(内部数据结构是数组)
1.当插入(push_back)一个元素后,end操作返回的迭代器肯定失效。
2.当插入(push_back)一个元素后,capacity返回值与没有插入元素之前相比有改变,则需要重新加载 整个容器,此时first和end操作返回的迭代器都会失效。
3.当进行删除操作(erase,pop_back)后,指向删除点的迭代器全部失效;指向删除点后面的元素的 迭代器也将全部失效。
1.在deque容器首部或者尾部插入元素不会使得任何迭代器失效。
2.在其首部或尾部删除元素则只会使指向被删除元素的迭代器失效。
3.在deque容器的任何其他位置的插入和删除操作将使指向该容器元素的所有迭代器失效。
1.删除时,指向该删除节点的迭代器失效,其他情况不会失效。
4.map的实现机制是什么?为什么使用这种方式?
答:map的实现是基于红黑树(是一种平衡检索二叉树)的,查找的速度比较快,比一般的平衡二叉树性能 要高。查找使用的是二分查找法。
5.给你一个二叉树的根节点,编程实现求该二叉树的结点数
6.游戏中宠物的攻击力的实时排名,例如更换一件装备或增加一件装备,排名的变化(考察的排序的策略)
- 上海恺英网络科技有限公司面试题
- 郑州某网络科技有限公司面试题
- 上海邮乐网络技术有限公司java面试题
- 扬州卓越网络科技有限公司
- 微时代网络科技有限公司
- 北京易通宝网络科技有限公司
- 河北拓睿网络科技有限公司
- 惠州优图网络科技有限公司
- 郑州俊风网络科技有限公司
- @老徐FrankXuLei 受邀为上海师翊网络科技有限公司讲授《微软WCF分布式开发与SOA架构设计课程》
- 新海天投资管理有限公司面试题
- 腾讯科技(北京)有限公司--面试题
- 腾讯科技(北京)有限公司--面试题
- CSS画实心三角形【格智网络科技 面试题】
- 上海javascript的面试题
- 2016上海某公司面试题
- 西安众聚力合网络科技有限公司太装逼了
- 天津丽芸网络科技有限公司不靠谱
- 北京的购车摇号新政的概率分析
- Linux中的likely()与unlikely()
- Linux添加/删除用户和用户组
- 工厂模式
- Flex拓扑图设计-有趣的鹰眼
- 上海恺英网络科技有限公司面试题
- 深入浅出工厂模式(转)
- MySQL数据库中字段设置了zerofill,页面上显示时整数前仍带有0以及如何查询字段注释
- C++单件模式
- 二叉树的递归实现及递归遍历
- ASCII,Unicode和UTF-8
- 我的博客今天0岁136天了,我领取了…
- 将Matlab中的矩阵写入txt文件的方…
- 林智仁的libsvm-2.9在windows下的…