几个面试题,求解释

独往丶 2014-12-09 05:57:10
1、一个进程,里面有一个线程,进程结束 ,线程还存活吗?
2、一个进程,里面有一个线程,线程sleep 50000秒,进程结束,这个线程还会存活吗?
3、jvm是如何实现的sync和lock的
4、5000W条数据的表,不可拆分,如何优化查询,可以考虑从任何角度的优化
5、ActiveMQ设置手动ACK的模式下,Consumer消费message长期不执行ACK,队列会有什么变化
6、简述innodb和myisam存储原理,MySQL里如果光是查询情况下,存储引擎innodb和myisam哪个性能更高,为什么
...全文
144 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰思雨 2014-12-09
  • 打赏
  • 举报
回复
都是可以百度出来的,问度娘基本就可以了。 1. 进程结束,线程当然不会存在。 2. 同1。 进程结束,进程中的线程同样被销毁。 这个是进线程之间的关系问题。进程是操作系统分配资源的最小单位,线程在某种层面上可以看做是允许CPU的一种资源, 所以,线程可以理解成是进程资源的一种(当然,我这种说法很非主流,仅供参考),进程不存在了, 进程的资源当然也就都释放了。 3. 这个问题,直接百度吧,解释起来太麻烦了。可以参考这个链接,如果你能看懂的话。 4. 5KW数据的表,通常都是分表再查询的,如果不分表,优化可以考虑以下几种方式: 一、应用程序级的优化,在应用程序端,建立查询结果的缓存,减少数据库查询负载。 二、应用程序级的优化,人工根据经验和工具软件对查询按照查询成本进行排序,将查询成本高的查询过程, 改成异步任务的形式,通过任务队列逐次进行查询操作,降低数据库负载, 并针对查询结果的使用频繁程度创建缓存。(融合一的思想) 三、数据库级的优化,根据查询成本和频繁程度综合考虑,为相应的表建立索引。 每个表的索引一般在3个左右,不超过5个。 四、数据库级的优化,更换数据库。 1). 大型数据库对于大数据表的支持都会有优化,或者使用分布式数据库,会自动并行查询。 2). 采用NoSQL的分布式数据库进行处理,这个性能更优。 四、通过SQL代理进行优化,很多SQL代理程序,都有缓存机制,可以考虑这方面的优化。 五、硬件增强(不推荐)。 考虑更大内存,更快的CPU,更快的存储设备(固态盘)等等,或者采用MySQL的读写分离技术。 5. 没用用消息中间件,不好回答,貌似应该是消息被丢弃了。楼主百度一下,了解一下消息中间的转发机制,应该就明白了。 6. 这个问题百度一下两者的区别,就一目了然了。一个带数据库事务一个不带事务,都是数据存储引擎。 单考虑查询性能的话,MyIsam要快很多,插入也快很多。并且底层还保存了当前表的记录数量。 很适用于论坛型的站点项目。读操作远远大于写操作。
独往丶 2014-12-09
  • 打赏
  • 举报
回复
有没有思路比较清晰的回答下

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧