Альфа-Банк хвастается (тут и тут), что выдает как кредитные, так и расчетные карты обеих вариаций. Один банк есть, другие запросто могут скоро подтянуться.
О, расчет зарплаты. Вы не знаете, почему это всегда преподносится как суперзадача? Что там за операции, что требуется несколько часов работы ЭВМ, которая точно считает быстрее настольного калькулятора?
Может кто-нибудь объяснить, почему нужно внедрять новую карту вместо того, чтобы организовать прием чего-нибудь вроде Visa payWave или MasterCard PayPass?
Есть один такой правильный лучший недорогой способ — не писать код. Как только от этого способа отказываются, сразу появляется простор для невыявленных ошибок.
В паспорте написано, что запрещается изъятие, а на катке вы вроде бы добровольно его сдаете. В этом случае действует пункт 2 статьи 19.17 Кодекса РФ об административных правонарушениях.
Пункт 2 статьи 19.17 Кодекса РФ об административных правонарушениях, предусматривает за принятие паспорта в залог предупреждение или штраф сто рублей. Так что нет, закон не разрешает.
если к ним полезет другой поток, то ничего хорошего не будет.
Верно, но выделение памяти под автоматическую переменную все равно потокобезопасно — оно происходит до того, как начинается время жизни переменной. Если другой поток пытается обратиться к переменной раньше, вы уже ходите по очень тонкому льду и это не связано с потокобезопасностью.
способ аллокации я предлагаю менять только для одного потока.
Как только вы пытаетесь сделать то же самое в еще одном потоке (а это вполне нормальное стремление), потокобезопасность становится актуальной.
В любом случае смысл затеи с выделенным распределителем в том, что вы экономите на освобождении памяти и фрагментации памяти. Для того, чтобы иметь возможность разрушить распределитель целиком, вам нужна уверенность, что к моменту разрушения распределителя нигде вне его не осталось указателей внутрь этого распределителя. Это не так просто, как может показаться на первый взгляд. В общем, идея работоспособная, но отнюдь не пуленепробиваемая и требующая большой дисциплины.
Да, это тоже путь. Например, можно использовать блочный распределитель памяти.
Правда есть одно «но». Куча в Visual C++ runtime потокобезопасная (и это одна из причин, почему она такая относительно небыстрая), в случае своего распределителя памяти о потокобезопасности придется хотя бы просто подумать.
Верно, но выделение памяти под автоматическую переменную все равно потокобезопасно — оно происходит до того, как начинается время жизни переменной. Если другой поток пытается обратиться к переменной раньше, вы уже ходите по очень тонкому льду и это не связано с потокобезопасностью.
Как только вы пытаетесь сделать то же самое в еще одном потоке (а это вполне нормальное стремление), потокобезопасность становится актуальной.
В любом случае смысл затеи с выделенным распределителем в том, что вы экономите на освобождении памяти и фрагментации памяти. Для того, чтобы иметь возможность разрушить распределитель целиком, вам нужна уверенность, что к моменту разрушения распределителя нигде вне его не осталось указателей внутрь этого распределителя. Это не так просто, как может показаться на первый взгляд. В общем, идея работоспособная, но отнюдь не пуленепробиваемая и требующая большой дисциплины.
Правда есть одно «но». Куча в Visual C++ runtime потокобезопасная (и это одна из причин, почему она такая относительно небыстрая), в случае своего распределителя памяти о потокобезопасности придется хотя бы просто подумать.