C++ (читается си-плюс-плюс[2][3]) — компилируемый, статически типизированный язык программирования общего назначения. Короче я учу я зык C++ и здесь буду описывать каждый шаг к изучению языка .
Сейчас наступило время многоядерных и многопроцессорных систем (даже в последних смартфонах уже 2+ ядер)Основная проблема многопроцессорного программирование это проблемы одновременного доступа к данным...Доступ к данным можно блокировать методом mutex-a (spin lock)pthread_mutex_lock(&mutex);// некая работа над глобальными даннымиpthread_mutex_unlock(&mutex);А можно при помощи атомарных операций__sync_add_and_fetch( &global_int, 1 );Сегодня пришло в голову проверить при каком...
В Linuxman 2 select
НАЗВАНИЕ select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - синхронное мультиплексирование ввода-вывода
Во FreeBSD - есть еще такая пометка: "The default size of FD_SETSIZE is currently 1024. In order to accommodate programs which might potentially use a larger number of open files with select(), it is possible to increase this size by having the...
Часто в коде можно увидеть использование конструкции
typedef hash_map<Word32, class SomeClass> TSomeHashMap;
TSomeHashMap shm;
shm[10] = SomeClass(val1, val2);
Более оптимальный, в большинстве случаев, следующий код:
shm.insert(TSomeHashMap::value_type(10, SomeClass(val1, val2)));
Лишние затраты в первом случае получаются из-за того что оператор [] это фактически:
(*((shm.insert(TSomeHashMap::value_type(10, SomeClass()))).first)).second = SomeClass(val1, val2);
Т.е...