java - 没有java中的println语句,锁不会被撤销
问题描述
我是Java语言的初学者。我有一个客户端服务器应用程序。在此应用程序中,需要对多个客户端访问服务器上的资源进行互斥。
我试图通过使用锁定变量来实现互斥。但是我不知道为什么当当前线程完成它的工作而没有在循环中使用 println 语句时,lock 变量没有得到更新。
下面是 server.java 文件的代码片段 -
int shown = 0;
int value = server.lock;
while(value != 1) {
if(shown == 0) {
System.out.println("Server is busy. Please wait");
shown++;
}
value = server.lock;
// Below statement.
System.out.print("\t");
}
shown = 0;
server.lock--;
每当当前线程的工作完成时,锁变量总是更新为 1
该代码与 println 语句完美配合,但没有它就无法工作。就像时间不断重复一样。我不知道为什么。
任何帮助表示赞赏。
谢谢,
P.帕雷克
解决方案
推荐阅读
- video-streaming - 重新定位的 Moov atom 不允许 chrome 播放视频,但 firefox 可以播放
- android - 在 sharedPreferences 中保存单个对象属性
- angular - 当插值连接“线性梯度”作为“背景图像”的值的条件时,图像消失。为什么?
- javascript - 在反应应用程序中包含调度程序模块
- windows - 将 Eclipse 复制到另一个用户的帐户时出现问题
- angular - Angular primeng 如何将带有主机的组件样式移动到通用样式
- remote-desktop - 如何设置任务计划程序任务以远程桌面连接到另一台机器?
- apache-nifi - 如何修复无法索引出处事件错误?
- javascript - 将 Javascript 变量数据粘贴到 SharePoint Online 列表表单中
- facebook - Facebook Ads 中应用延迟深度链接的生效时间是多少?