Java-GUI界面下添加选项和删除选项的线程同步

发布于 2017-02-15 17:18:42 字数 359 浏览 1279 评论 3

如图

“我们原来的系统里菜单选项(Add Delete Find List),增加(Add)与删除(Delete)就有严格的排他性,你在增加的时候,是不允许删除的,或者你在删除的时候是不允许增加或者查找、遍历的,不然查找的结果或显示的结果与实际结果不会相同,发生我们说过的读写相关的问题。
在前期试验的基础上,考虑如何对2中我们提出的问题进行改进?(当然,这里肯定是通过线程同步的技术加以实现)”

思路是怎么样的呢?求大神指导!

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

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

发布评论

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

评论(3

归属感 2017-08-21 08:56:10

针对你这个问题,解决的办法有很多。

有些办法是和你的应用程序架构有关的。

其实就是对共享资源的多线程操作。

简单的方法就是在你现在的共享数据结构上每个item增加一个互斥量(类似锁的概念)

每一种操作共享数据的方法,先检查一下这个互斥量

瑾兮 2017-06-16 10:24:28

1.GUI本身是单线程的,菜单按钮的listener永远在UI的单线程中执行,所以如果你把增删改查的代码写在这些listener中,你永远不会得到“线程不安全”的结果。

2,当然,你是否把操作逻辑写在listener中,是要考虑这个操作的执行效率以及耗时的。如果操作很负复杂漫长,那么就要单独找一根线程组做它们。

3,无论是单独找线程去做,建议把操作任务封闭在一个线程里去做。宛如生产者消费者模型那样,商品就是那些要执行的任务。

4,如果3成立,最好的方案就是使用callable与futrue

瑾兮 2017-04-11 11:55:29

GUI上直接disable掉不就行了……

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