使用静态变量配合lock关键字解决多线程争抢资源冲突。
做新版CMS时遇到静态页面生成这一老课题。
以前做得浅,没有考虑到两个管理员同时操作同一文件时的情况,测试后发现会报错,提示资源正在使用中。
解决方法是使用静态变量配合lock关键字:
定义:lock关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。?
解释:确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。
定义:lock关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。?
解释:确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。