2016 - 2024

感恩一路有你

java事件源的监视器 java的多线程同步,什么是同一对象监视器?监视器是什么?

浏览量:2335 时间:2021-04-14 16:44:33 作者:admin

java的多线程同步,什么是同一对象监视器?监视器是什么?

Java多线程监视器是同步机制。

通常,在执行线程同步时使用关键字“synchronized”。它有一个参数监视器,通常指这个参数。

Synrhonized被广泛使用。其应用层的语义是,任何非空对象都可以用作“锁”

当synchronized作用于方法时,它锁定对象实例(this);

当synchronized作用于静态方法时,它锁定对象对应的类实例,因为类数据存在于持久带中,所以静态方法锁相当于类的全局锁;

当synchronized作用于静态方法时,它会锁定与对象对应的类实例,而对象实例会锁定相应的代码块。

在hotspot JVM实现中,锁有一个特殊的名称:object monitor。

java中多线程常见的几个参数?

Java多线程几个常见参数:

睡眠:在指定的毫秒数内使当前正在执行的线程睡眠(暂停执行)。

此操作受系统计时器和计划程序精度和准确性的影响。

线程不会失去任何监视器的所有权。

调用睡眠时不会释放锁。

Sleep

JavaSE5引入了一个更可见的Sleep(),作为timeunit类的一部分。此方法允许您指定sleep()延迟的时间单位,以便提供更好的可读性。

Wait:调用Wait挂起线程,直到线程收到notify或notifyAll消息。

允许您等待超出当前方法控制范围的条件更改。

线程的执行被挂起,对象上的锁被释放。这意味着另一个任务可以获得锁。

因此在等待期间可以调用对象中的其他同步方法。

我的工作快完成了,我可以让其他线程使用CPU。

当您调用yield时,您还建议其他具有相同优先级的线程可以运行。

任何重要的控制或调整应用程序都不能依赖收益率。

屈服并不意味着退出或暂停。它只是告诉线程调度程序,如果有人需要它,他们可以先得到它。我稍后再执行。没人需要它。我继续

调用yield时,锁没有释放。

中断:中断线程。

thread类包含interrupt()方法,因此您可以中止被阻止的任务。

此方法设置线程的中断状态。

如果线程被阻塞或试图执行阻塞操作,设置线程的中断状态将引发interruptedexception。

引发异常或任何调用时线程已中断(),中断状态将被重置。

如果在执行器上调用shutdown now(),它将向它启动的所有线程发送中断()调用。

java事件源的监视器 java怎么用 java监视器的作用

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。