компонуемости:
atomic {
x = Queue1.getItem();
Queue2.getItem(x);
}
Если либо getItem, либо putItem повторяется, тогда повторяется вся транзакция. То есть транзакция ожидает, пока Queue1 не станет пустой и Queue2 не заполнится. Нам не нужно перекодировать putItem или getItem.