关于多线程停止处理问题?

发布于 2022-10-01 06:05:19 字数 404 浏览 14 评论 0

系统环境:OS:Redhat Linux 7.3
DB:Oracle 8.1.7
我们的通信应用平台就构架在这样的环境下

现在前台GUI给通信应用平台发数据包,以前是一个线程负责接收,并且处理,其中包括对数据库的操作,这样就是重复式,效率不高,这样虽然慢,但是线程不死;然后经过修改,就是又起了一个线程,这个线程专门负责处理接收过来的包,以前的线程只负责接收,改成了并发式,就出现了问题,接收线程接收数据包没问题,一直在接收,但是处理线程处理到500多个包的时候,它就不再处理了,但它并没有死,现在我们往往是把整个应用down了,前台GUI停止发包,然后再把应用起来,前台恢复发包,但还是一样,处理线程处理到500多个包的时候,就不处理了,这是为何?
我察了看了一下,这两个线程的占用CPU都挺大,一般是35%~46%,大家帮忙给分析分析

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

虫児飞 2022-10-08 06:05:19

我碰到的可能是因为accept阻塞引起进程调度阻塞。
我的解决方法是在Widnows端在一个象样的事务后调用一下Sleep(0);
同时吧accept设置成非阻塞的,在超时后调用一下Sleep(0);

心的位置 2022-10-08 06:05:19

好像不是这个原因,大家谁还有这方面的经验,说一下

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文