[英]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.