[Картинка]TLS

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

[Картинка]TLS

Сообщение ANDLL » 08.01.2007 (Пн) 18:11

Thread Local Storage - место, где храняться локальные переменные потока. Он предназначен для обмена данными внутри потока. Очевидно, что для этого не подходят глобальные переменные, именно в виду их глобальности. Для работы с Tls можно использовать функции, которые(как ни странно) начинаются с Tls(...).
Тем кто пользуются .NET, картинку смотреть нет смысла: для них был введен удобный атрибут ThreadStatic() который создает переменную в TLS прозрачным образом.
В некоторых С run time то же есть поддержка своей "внутренней" tls, для этого есть специальный модификатор __declspec( thread ).
Каждая ячейка в tls имеет размер 4 байта.

Изображение
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 08.01.2007 (Пн) 20:01

[тут был глупый вопрос]
Последний раз редактировалось BV 08.01.2007 (Пн) 21:23, всего редактировалось 1 раз.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.01.2007 (Пн) 20:12

Windows 2000 and later 1088 indexes per process
Windows 98/Me 80 indexes per process
Windows 95 Windows NT 4.0 and earlier 64 indexes per process
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 08.01.2007 (Пн) 21:23

Это я знаю.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 99

    TopList