Có, trong mã bộ nhớ đệm của bạn, bạn sẽ muốn đặt mã truy cập cơ sở dữ liệu của mình bên trong một lock
khối. Tuy nhiên, đừng khóa this
. Thông thường, bạn sẽ làm điều gì đó giống như
private static readonly object staticObjectToLockOn = new object();
...
if (cache[cacheKey] == null)
{
lock(staticObjectToLockOn)
{
// double-check the cache is still null inside the lock
if (cache[cacheKey] == null)
{
// get data from the database, add to cache
}
}
}