<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <blockquote>
讯享网
✍个人博客:https://blog.csdn.net/Newin2020?type=blog
📣专栏地址:http://t.csdnimg.cn/fYaBd
📚专栏简介:在这个专栏中,我将会分享 C++ 面试中常见的面试题给大家~
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪
📝推荐参考地址:https://www.xiaolincoding.com/(这个大佬的专栏非常有用!)
由前面的公式:QPS(TPS)= 并发数/平均响应时间 可以看出,要提高 QPS,我们必须做 2 个方面努力:
(1)增加并发数
- 比如增加 tomcat 并发的线程数,开跟服务器性能匹配的线程数,可以更多满足服务请求。
- 增加数据库的连接数,预建立合适数量的 TCP 连接数。
- 后端服务尽量无状态话,可以更好支持横向扩容,满足更大流量要求。
- 调用链路上的各个系统和服务尽量不要单点,要从头到尾都是能力对等的,不能让其中某一点成为瓶颈。
- RPC 调用的尽量使用线程池,预先建立合适的连接数。
(2)减少平均响应时间
- 请求尽量越前结束,越好,这样压力就不要穿透到后面的系统上,可以在各个层上加上缓存。
- 流量消峰。放行适当的流量,处理不了的请求直接返回错误或者其他提示。和水坝道理很类似。
- 减少调用链。
- 优化程序。
- 减少网络开销,适当使用长连接。
- 优化数据库,建立索引。
答案一:
1)进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。
2)线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有 自己的栈空间,拥有独立的执行序列。
两者都可以提高程序的并发度,提高程序运行效率和响应时间。
线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合于 在 SMP 机器上运行,而进程则可以跨机器迁移。
答案二:
根本区别就一点:用多进程每个进程有自己的地址空间 (address space),线程则共享地址空间。所有其它区别都是由此而来的:
1)速度:线程产生的速度快,线程间的通讯快、切换快等,因为他们在同一个地址空间内。
2)资源利用率:线程的资源利用率比较好,也是因为他们在同一个地址空间内。
3)同步问题:线程使用公共变量/内存时需要使用同步机制,还是因为他们在同一个地址空间内。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/161459.html