有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在执行线程时阻止对象更改

我在执行线程时遇到问题。当我在执行另一个更新该对象的线程时,从主线程删除一个对象时,就会出现问题。当第二个线程尝试更新对象时,由于对象不再存在而发生异常。我的问题是:当我运行我的特殊线程时,如何阻止其他线程修改我的对象?我希望我的特殊线程优先于应用程序中的所有其他线程

多谢各位


共 (1) 个答案

  1. # 1 楼答案

    有多种方法可以实现这一点:

    (a)使用锁定或同步(在对象上使用同步块)方式同步删除和对象访问调用

    (b)编辑:使用初始值为1的原子整数。删除时将其标记为0,修改时将其标记为-1(完成后重新标记为1),修改线程将在继续修改对象之前检查if (atomicCounter != 0),删除线程将在删除之前检查while (atomicCounter != -1)(即等待变为零)

    (c)使用与倒计时闩锁相反的东西(倒计时闩锁,它在Java库中不存在)

    (d)不要做任何事情,如果出现异常,请使用catch和finally block正确处理它,并让线程代码继续运行