小编jim*_*imx的帖子

如何减少java并发模式失败和过多的gc

在Java中,并发模式失败意味着并发收集器无法释放足够的内存空间形成终身和永久性,并且必须放弃并让完全停止世界的 gc开始.最终结果可能非常昂贵.

我理解这个概念,但从未对
A)有什么可能导致并发模式失败以及
B)什么是解决方案有一个很好的全面理解.

这种不清楚导致我编写/调试代码而没有太多提示,并且经常不得不在没有特殊原因的情况下从Foo到Bar那些性能标记,只需要尝试.

我想向开发人员学习一下你的经历如何?如果您遇到此类性能问题,原因是什么以及您如何解决它?

如果您有编码建议,请不要太笼统.谢谢!

java concurrency garbage-collection

44
推荐指数
3
解决办法
4万
查看次数

fork在多线程程序中

我听说在程序中混合分叉和线程可能非常有问题,通常会产生神秘的行为,特别是在处理共享资源时,例如锁,管道,文件描述符.但我从未完全明白危险是什么以及何时会发生.如果具有该领域专业知识的人能够更详细地解释在这样的环境中编程时存在哪些陷阱以及需要注意什么,那将是很棒的.

例如,如果我想编写一个从各种不同资源收集数据的服务器,我认为一个解决方案是让服务器生成一组线程,每个popen调用另一个程序来完成实际工作,打开管道从孩子那里获取数据.这些线程中的每一个都响应它自己的工作,没有数据交换它们,并且当收集数据时,主线程有一个队列,这些工作线程只将结果放入队列.这个解决方案可能出现什么问题?

请不要通过"回答"我的示例场景来缩小您的答案范围.任何与示例无关但有助于提供简洁设计的建议,替代解决方案或体验都会非常棒!谢谢!

multithreading operating-system fork

23
推荐指数
2
解决办法
1万
查看次数