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