Java 多线程 - reader 和同步块中的编写器线程
Java multithreading - reader and writer thread in synchronized block
这是求职面试的问题:
如何在同步块中识别读线程和写线程?
您可以随时执行以下操作:
Thread current = Thread.currentThread()
现在;当您有 map/list/... 线程时,您可以简单地比较引用。简单示例:
您向 class 添加了两个字段:
private Thread reader =
private Thread writer =
然后你可以做
synchronized foo() {
if (Thread.currentThread() == reader) ...
郑重声明:虽然事情看起来很简单,但与 "this problem" 打交道的人应该退后一步:这闻起来 XY problem
到处都是。
意思:在"real"世界;我认为这样的代码是不好的做法。很可能,它试图解决一个应该以其他方式解决的问题!
所以,面试官的回答最好是直接技术回答的组合;但指出 "bad practice" 问题。
您可以检查当前线程是 instanceOf Reader 还是 Writer
这是求职面试的问题:
如何在同步块中识别读线程和写线程?
您可以随时执行以下操作:
Thread current = Thread.currentThread()
现在;当您有 map/list/... 线程时,您可以简单地比较引用。简单示例:
您向 class 添加了两个字段:
private Thread reader =
private Thread writer =
然后你可以做
synchronized foo() {
if (Thread.currentThread() == reader) ...
郑重声明:虽然事情看起来很简单,但与 "this problem" 打交道的人应该退后一步:这闻起来 XY problem 到处都是。
意思:在"real"世界;我认为这样的代码是不好的做法。很可能,它试图解决一个应该以其他方式解决的问题!
所以,面试官的回答最好是直接技术回答的组合;但指出 "bad practice" 问题。
您可以检查当前线程是 instanceOf Reader 还是 Writer