Максим Тимофеев: А зачем мне разбираться в куче готовых решений, в частности как их кастомизировать под свой проект, если это пишется за полчаса максимум
UPDATE `users` SET `balance`=`balance`-{data.sum} WHERE `id`={data.id} AND `balance`>={data.sum}
Где в фигурных скобках подстановки данных, например через PREPARED STATEMENT
Успешность проверяем по количеству затронутых запросом строк, которое будет либо 0 либо 1
Денис Загаевский: дан массив из 13 элементов, разбиваем его в матрицу 4х4, в Вашем варианте будет 16 итераций, в моем 13. Дан массив из 4001 элементов, разбиваем его в матрицу 201х200...
ILE -Salim: для ОС pid+fd это просто указатель на открытый ресурс, неважно файл это или сокет или ipc поток или вообще с usb данные читаем, у каждого такого потока будет свой fd - просто число уникальное для процесса. Когда мы передаем его другому процессу, то мы как бы говорим ОС "у меня открыт ресурс, номер потока такой-то, дай ссылку на поток вот этому процессу", ОС создает новый fd для целевого процесса, но ссылается он на тот же поток, что и у нас
Денис Загаевский: насчет обратного прохода - оптимальность в банальном сокращении операций на итерацию
Насчет вложенных циклов, в условии сказано без них, и за это реально штрафуют в олимпиадных задачах, на которую очень уж похожа данная задача. К тому же, такой подход даст arr.length % (xlen * ylen) бесполезных итераций
ILE -Salim: хм, проверьте если у передаваемого объекта числовое поле fd. Так как этот функционал передает именно открытый файл-дескриптор из процесса в процесс. Ну и еще, конструктор передаваемого объекта должен уметь создавать объект по файл-дескриптору, то есть new Constructor({fd : (number)}), где (number) - открытый дескриптор, должно работать
sashadobrota: Добавлю. Чем больше массив, тем медленнее работает splice, для удаления одного элемента или элементов идущих подряд вполне подойдет, а вот если надумаете удалять несколько пользователей за раз, то они вполне вероятно будут идти в произвольном месте массива и код придется несколько усложнить для оптимизации
Денис Букреев: в любом случае стоит потестить на конкретном проблемном девайсе. Сафари на iPhone/iPad/iPod можно синхонизировать со средствами разработчика в сафари на osX по кабелю. Тестите