繁体   English   中英

Java多线程-同步块中的读取器和写入器线程

[英]Java multithreading - reader and writer thread in synchronized block

这是求职面试的一个问题:

如何识别同步块中的读取线程和写入线程?

您可以随时执行以下操作:

Thread current = Thread.currentThread()

现在; 当您具有线程的映射/列表/ ...时,可以简单地比较引用。 简单的例子:

您将两个字段添加到您的班级:

private Thread reader = 
private Thread writer = 

然后你可以做

synchronized foo() {
  if (Thread.currentThread() == reader) ...

记录:尽管看起来很简单,但是处理“这个问题”的人应该退后一步:这遍地都是XY问题

含义:在“真实”世界中; 我认为这样的代码是不好的做法 它最有可能尝试解决应以其他方式解决的问题!

因此,面试官的答案最好是直接技术答案的结合; 但指出了“不良做法”问题。

您可以检查当前线程是instanceOf Reader还是Writer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM