Вот ссылка на страницу документа PostgreSQL на MVCC. Кавычка выбора (шахта акцента):
основное преимущество для использования модели MVCC управления совместным выполнением вместо блокировки состоит в том, что в блокировках MVCC, полученных за запросы (чтения), данные не конфликтуют с блокировками, полученными за запись данных, и таким образом чтение никогда запись блоков и запись никогда блоки, не читая .
Поэтому Jeff был так соединен его мертвыми блокировками. Чтение никогда не должно быть в состоянии вызвать их.
Ну, если вы хотите сравнить только содержимое массивов, есть полезная функция jQuery $. InArray ()
var arr = [11, "String #1", 14, "String #2"];
var arr_true = ["String #1", 14, "String #2", 11]; // contents are the same as arr
var arr_false = ["String #1", 14, "String #2", 16]; // contents differ
function test(arr_1, arr_2) {
var equal = arr_1.length == arr_2.length; // if array sizes mismatches, then we assume, that they are not equal
if (equal) {
$.each(arr_1, function (foo, val) {
if (!equal) return false;
if ($.inArray(val, arr_2) == -1) {
equal = false;
} else {
equal = true;
}
});
}
return equal;
}
alert('Array contents are the same? ' + test(arr, arr_true)); //- returns true
alert('Array contents are the same? ' + test(arr, arr_false)); //- returns false
Я не думаю, что есть хороший способ "jQuery" сделать это, но если вам нужна эффективность, сопоставьте один из массивов определенным ключом (одним из уникальных полей объекта), а затем выполните сравнение, перебирая другой массив и сравнивая с картой или ассоциативным массивом, который вы только что построили.
Если эффективность не является проблемой, просто сравните каждый объект в A с каждым объектом в B. Пока | А | и | B | маленькие, все должно быть в порядке.