Java 游戏开发与文件操作综合实践
1. PlayArea 类详解
1.1 线程管理与块清空
在处理块下落线程( blockDrop
)时需要格外小心。当将块设置为 null
时,要确保没有活动线程正在操作该块。以下是清空操作的代码:
public void clear() {
if (blockDrop != null && blockDrop.isAlive()) {
stopRequest = true;
blockDrop.interrupt();
try {
blockDrop.join();
} catch (InterruptedException ie) {}
block = null;
}
super.clear();
}
操作步骤如下:
1. 检查 blockDrop
线程是否存在且正在运行。
2. 设置 stopRequest
为 true
,用于跳出线程的 while
循环。
3. 调用 interrupt()
方法,使线程尽快响应停止请求。
4. 调用 join()
方法,让当前线程等待 blockDrop