• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

同步块 – Java

java 来源:Hari 6次浏览

我意识到在Java中提供的同步块基本上是一个可重入互斥体的实现。但是,同步块原子?同步块 – Java

那么如何处理当前在同步块内执行的线程的中断 – 是否通过恢复到目前为止所做的所有更改来释放锁?

编辑:至于问题的中断部分 – 它如何通常在Java中处理。例如,我看到很多java代码示例,其中开发人员在某个线程处于等待队列中时(例如)会捕获中断。但是,在catch块中,他们所做的只是打印中断。我对这个线程实际发生了什么感到好奇吗?它是否从等待队列中删除?

===========解决方案如下:

– 原子

synchronized块有助于实现原子 – 但他们的数据操作无法garaunteed是原子的。要使同步块中的内容成为原子,通常使用原子数据结构,如getter和setter,例如AtomicBoolean。

有一个伟大的原子类的聚宝盆,像原子诠释数组,由最新的Java版本支持。

– 处理中断的方式:

中断中未明确通过同步处理 – 同步块只有gaurantee,虽然执行时,该块不能由另一个线程重新输入。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)