Bar*_*ttt 4 java multithreading java.util.concurrent atomicboolean
我正在尝试使用以下代码在 java 中的多线程应用程序中部署 TTAS:
AtomicBoolean state= new AtomicBoolean(false);
void lock(){
while(true)
{
while(state.get())
{
if(!state.getAndSet(true))
return;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试旋转它的值时,我如何比较状态的值以检查它是真还是假,而每次遇到错误,说我正在尝试比较两个不同变量的类型?经验:
Lock lock = new Lock();
if(lock.state==true) // error !
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
谢谢你!
但是我怎样才能比较状态的值来检查它是真还是假
你只需要打电话get():
if (lock.state.get())
Run Code Online (Sandbox Code Playgroud)
鉴于您已经在while循环中使用它,我很困惑为什么您之前没有看到它:
while(state.get())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4853 次 |
| 最近记录: |