Словарь двачера. Как анонимы определяют «винишек»

Словарь двачера. Как анонимы определяют «винишек»

14.03.2019

Типаж девушек-подростков, которые похоже выглядят: носят короткие стрижки, красят волосы в яркие цвета, выбирают вещи определенных брендов и слушают одну и ту же музыку. БигПикча рассказывает, откуда взялось слово «винишки», кто к ним относится и что об этом думают сами девушки.

«Винишек» объединяют в первую очередь по внешним признакам. Главные черты такой девушки - стрижка каре и круглые очки без диоптрий, волосы часто выкрашены в яркий неестественный цвет (розовый, зеленый) или осветлены. Одеваться они могут в закрытые скромные платья, вещи от российских брендов уличной одежды вроде «Волчок», «Юность» и «Спутник 1985». Из верхней одежды - черное пальто. Могут носить чулки или колготки в крупную сетку, часто чокеры. Маленький скейт, рюкзак Fjallraven и кеды Vans, татуировки на кириллице и макияж с яркими стрелками.




Из-за цветных волос в «винишки» определили даже дочь Алексея и Юлии Навальных, а также участницу Pussy Riot Надежду Толоконникову образца 2014 года.

Изначально описывать разрозненные черты «винишек» начали на «Дваче». 26 августа кто-то спросил, есть ли название у такого типажа, и анонимы решили его придумать. Предлагали варианты «постмодерн-педовка», «каре-педовка», «мейнстримная п..да», «питераска» и «нитокаякакфсе», но остановились на популярном в соцсетях слове «винишко» (в оригинале - «вынишко»).

То ли уменьшительно-ласкательное, то ли пренебрежительное «винишко» в твиттере уже года два ассоциируется с девушками, которые в соцсетях пишут в основном о еде, алкоголе и отношениях с мужчинами, - правда, выглядеть они при этом могут как угодно. Затем к новому термину прибавилось слово «тян» (то есть «девушка»), пришедшее из аниме.

Попытки дать наименование такому стилю одежды были и до этого: еще в 2015 году в пабликах «ВКонтакте» похожих девушек называли «абстрактными».

6 сентября о «винишковых» тредах написал у себя в соцсетях администратор «Двача» Нариман Намазов, и после этого о «субкультуре» стали одно за другим рассказывать интернет-издания. Многие из этих статей не давали ответа, что, собственно, объединяет прозванных «винишками» девушек, кроме внешних признаков. Найти ответ на этот вопрос мы попытались в тредах «Двача».

Как анонимы определяют «винишек»

Юный возраст.

Декларируемый интерес к искусству и выставкам, артхаусному кино и литературе, андеграунду, цитирование философов.

Феминизм, бодипозитив, веганство или вегетарианство, борьба за права животных.

Пансексуальность: влечение ко всем людям, независимо от пола и ориентации.

Книги: Мандельштам, Бродский, Кафка, Стивен Фрай, а еще, казалось бы, подзабытые Паланик и Берроуз.

Музыка: постпанк, вичхаус и другая электронная музыка и в то же время «Гражданская оборона», «Сплин» и сравнительно новые группы из России вроде «Буерака» и «Пошлой Молли». Кто-то приписывает им интерес к баттлам и молодым и не очень рэперам: Pharaoh, Babangida, ЛСП, Паша Техник. Кажется, здесь анонимы объединили абсолютно все последние музыкальные увлечения модной молодежи.

Интернет-культура: паблики «Лентач», Clique, «Абстрактные мемы для элиты всех сортов», любовь к стикерам. В соцсетях однообразные фотографии, одни и те же позы и фильтры.

Фильмы Долана, Marvel, сериалы «Доктор Кто» и «Шерлок», желание приобщиться к культуре «нердов».

Пишут стихи, рисуют черепа в скетчбуке, считают себя художницами или поэтессами.

Романтизируют одиночество, смерть, психические болезни: депрессию, шизофрению, биполярное расстройство (считается, что последнее в массовую моду ввел рэпер Оксимирон с треком «Биполярочка»), говорят о себе как о немного ненормальных.

Придумывают необычные псевдонимы вместо фамилий. В качестве примера один из анонимов перечислил такие варианты: Анастасия Кот, Галина Собака, Соня Тесла, Дарья Моргенштерн, Александра Штрошер, Татьяна Цигельштейн, Мария Борштангберг, а также указал, что в паспорте у таких девушек - «стандартная рязанская фамилия, какая-нибудь Кузнецова или Петренко». Также могут называть себя «Настасья Филипповна», «Анна Каренина» и «Пульхерия Александровна», «хотя не читали ни Достоевского, ни Толстого».

Любят Петербург.

Ходят на вписки, а в Петербурге - в ночные клубы «Этажи» и «Ионотека». Фотографируются на фоне картин.

Ну и, разумеется, любят вино, но якобы предпочитают дешевые напитки из коробки. Могут курить и употреблять наркотики.

Кто-то из анонимов спросил, что же во всем этом плохого, и ему ответили, что творческий образ этих девушек - это ширма, лицемерие и поза ради внимания. Эти девушки якобы считают себя не такими, как все, а на самом деле они неумны, поверхностны, неинтересны и сконцентрированы на внешнем облике, стремятся только к деньгам, а на выставки ходят лишь ради селфи.

Некоторых смущает то, что на фотографиях «винишки» стремятся выглядеть «застенчивыми и умными девочками», но в то же время, по их мнению, ведут развязный образ жизни: «пьют до потери пульса и спят с первыми встречными». Один из пользователей пожаловался, что если в 2014 году можно было искать «няшу-стесняшу с каре», то теперь это признак «вниманиеб..ди». В качестве примера подобной «няши» в треде привели коротко стриженную героиню аниме Мисаки.

К тому же девушкам вменили в вину то, что все они одинаковые пустышки, которые не могут самостоятельно создать себе образ и копируют стиль и интересы друг у друга.

Кто-то сделал винишко-стикеры для мессенджера Telegram.

Аккаунт все того же «Двача» предложил еще и образ «винишко-куна», то есть юноши.

Некоторые обратили внимание на то, что внешне под образ «винишко-тян» идеально подходит героиня Натали Портман в фильме «Леон».

А если судить только по прическе, то сюда можно отнести и маму Дяди Федора из Простоквашино.

25 сентября мем «винишко» добрался и до Тины Канделаки: медиаменеджер написала о нем в своем Telegram-канале. Над очередной попыткой телеведущей «хайпануть» на популярной у молодежи теме незамедлительно

0 Многие люди сталкиваются в интернете с различными специфическими словечками и выражениями, которые порой вгоняют их в ступор. Для того, чтобы не показаться "олдфагам " тупым новичком, и поддержать своё реноме, необходимо иметь быстрый поиск ответов.. Добавляйте нас в закладки, чтобы вам было легче отыскать нас в этом бушующем океане интернета. Сегодня мы поговорим о довольно таинственном для некоторых понятии, это "Тред ", что значит вы можете прочесть немного ниже.
Впрочем, прежде чем я продолжу, прочтите ещё парочку другую толковых новостей по тематике интернет сленга . Например, что значит Дебажить , что такое Сап , как понять слово Личка , что такое Крипипаста и т. п.
Итак, продолжим, что значит Тред ? Этот термин был заимствован из английского языка "a thread ", и переводится на русский, как "нить", "нитка".

Тред - это цепочка ответов в комментариях к блогу или ответов на форуме, другими словами - это отдельная ветвь обсуждений


Пример :

Костян, хорош тролля кормить, я ещё вчера с ним минут сорок тёрки тёр на этом треде.

Говоря простыми словами, если вы задали вопрос на форуме, создав при этом новую тему, то это и есть "Тред ". После чего, все ответы, и обсуждения, которые затем будут поститься в вашей теме, всё так же остаются "Тредом". Поэтому, когда вы откроете тему, то можете похвалиться, своим родителям ньюфагам, что создали новый "Тред".

Некоторые пытливые особи интересуются, что значит Бамп тред ? Этот термин был заимствован из английского языка "bump", и переводится, как "удар", "толчок".
Чтобы понять, что такое Бамп, вы должны знать, что все треды, ветви, нити на форумах подлежат автоматической сортировке. Это значит, что самое последнее сообщение / комментарий попадает на самый верх, где его может увидеть каждый. С течением времени этот комментарий опускается, поскольку периодически кто-то оставляет новое сообщение, попадающее наверх. Затем, когда места на первой странице уже не хватает, этот комментарий попадает на вторую страничку, а затем и на последующие.
Пользователи. которые хотят, чтобы их комментарий снова оказался на самом верху, могут его поднять, написав слово "Бамп", "Ап", "Ввверх" и т. п. В следствии чего, он снова попадает в топ, и все опять смогут его прочесть, и начать обсуждать, если автор не увидел ответа в первый раз.

Бамплимит - это число сообщений, после которых тред поднимется на первую страничку доски бампов


/thread - человек, который оставил такое сообщение, намекает, что тему можно закрывать



Стоит добавить, что слово Тред в основном используют двачеры или другие продвинутые пользователи, для всех остальных имеются более простые слова, вроде "тема" или "ветви дискуссии" в Живом Журнале.

Первоначально слово "Тред" использовали ещё в "usenet ", когда впервые появилась подобная организация постов.

Прочтя эту небольшую статью, вы узнали, что значит Тред перевод, и больше не попадёте в тупик, если ещё раз наткнётесь на это словцо.

Наверное, почти все уже читали Роберта Кийосаки «Квадрант денежного потока». Если кто не в теме, то прочтите мою статью «Секреты денег» , там на одной странице я излагаю стержневую идею этой книги. И все понимают, что уровень благосостояния определяют пассивные денежные потоки.

Но вот одна закавыка, все пассивные источники дохода требуют денежных вложений. Чтобы получать дивиденды от акций – нужны деньги, чтобы эти акции купить. Даже, чтобы просто получать проценты по банковскому вкладу – следует положить в банк кругленькую сумму.

Как быть, если денег нет и вкладывать нечего? Богатый папа Кийосаки всегда говорил малышам Роберту и Майку, что главный актив (нечто приносящее деньги) находится между ушами.

Что означают эти слова богатого папы? Они означают, что только Ваши умственные усилия способны приносить Вам деньги.

В статье «Секреты денег» я высказываю свою теорию о том, что деньги – это эквивалент пользы. Значит, чтобы получить деньги следует создать что-либо полезное. Полезной в наш век может быть информация. Всегда есть такой человек, которому может быть полезна ваша информация. С помощью компьютерных технологий вы всегда можете полезной информации придать некоторую материальную форму.

Материальная форма информации – это обычный компьютерный файл. Он может быть текстовым, может быть графическим, может быть звуковым, а может быть вообще в формате видео.

Создать полезную информацию, придать ей материальную форму еще недостаточно, чтобы получить деньги. Для этого следует материальной форме полезной информации, которую вы создали, найти покупателя.

Если перевести на человеческий язык околофилософскую тарабарщину – чтобы создать денежный поток, вам просто следует создать и продавать файл.

Теперь давайте разберемся поподробнее что создать и как продать.

Созидание – это творческий процесс, непростой и трудозатратный. Вам следует взять лист бумаги и выписать все области ваших знаний, которые могут быть полезны максимальному числу людей. Затем эти знания следует соотнести с трудозатратностью их изложения и выбрать наиболее полезные и наименее трудозатратные.

Способов продать файл существует великое множество, и я даже не буду их здесь перечислять. Возьму за пример тот, с которого лучше всего начать. В общем виде все способы состоят из следующих действий:

  1. Регистрация в интернет-платежной системе;
  2. Регистрация в сервисе, который реализует прием оплаты и выдачу файлов;
  3. Реклама ссылки с витриной, на которой представлено описание файла;
  4. Вывод денег из сервиса на счет в интернет-платежной системе.

Из описанного процесса следует, что все пункты, кроме четвертого – это дело техники, нужно немного подразобраться и — проблем никаких нет.

Четвертый пункт – самый сложный. Конечно, лучшей рекламной площадки, чем свой сайт не найти. Но если своего сайта у вас нет – то можно использовать сайт-витрину, которую предоставляет сам сервис по приему оплаты и выдачи файлов.

Теперь самое сложное в этой технологии – это реклама ссылки. Есть много способов платной рекламы, но рекламщики просят за рекламу денег, а мы задались целью создать денежный поток без вложений. Ведь никаких гарантий, что именно у вас все получится все также удачно, как и у меня – нет.

Такими сайтами являются:

Блоги – в комментариях многие блоггеры позволяют оставлять ссылку на сайт, для того кто написал комментарий;

Форумы – многие форумы разрешают зарегистрированным участникам оставлять свою ссылку в подписи к сообщениям;

Поначалу всегда кажется, что ничего не получится. Оставлены первые ссылки, а покупателей как не было, так и нет. Это самый трудный период, который останавливает ленивое большинство, а следовательно – отваливается огромная масса конкурентов. Да я сам уже чуть было не отвалился, когда вдруг начало получаться.

Почему со временем и у вас обязательно начнет получаться, если вы не бросите свою затею?

Потому, что каждая, оставленная вами ссылка начинает работать на вас как продавец в магазине. Но в отличие от продавца – ей не нужно платить, этой ссылке. Вы потрудились, чтобы ее нанять и она работает 24 часа в сутки как робот.

Если взять за правило оставлять каждый день по одному комментарию на блогах со ссылкой на витрину магазина с файлом, то через три месяца на вас бесплатно и круглосуточно будет работать целая сотня роботов. Дальше – больше.

В какой-то момент вы устанете размещать ссылки и привлекать новых роботов. Но привлеченные роботы будут все-равно продолжать работать и приносить вам деньги. Неважно сколько будет этих денег, важно – что будет создан денежный поток, который будет приносить вам деньги без вашего участия.

После создания своего первого денежного потока, можно заниматься созданием следующего. Весь фокус денежного потока именно в том, что сначала вы трудитесь над его созданием, а потом он трудится на вас.

Итак, предлагаю вам приступить к созданию своего первого денежного потока:

  1. Регистрируемся в интернет-платежной системе Вебмани webmoney.ru
  2. Регистрируемся на сервисе digiseller.ru
  3. В сервисе digiseller.ru в личном кабинете есть Меню «Товары», в меню «Товары» следует выбрать подменю «Партнеры», затем перейти на вкладку «ID партнера». (Это для того, чтобы найти партнерскую программу на мои товары – выбирайте любой)
  4. На вкладке «ID партнера» есть поле ввода «Регистрационный номер (ID партнера):», в это поле следует ввести номер 585972 и нажать кнопку найти.
  5. В открывшейся вкладке выбрать меню «товары партнера» и кликнуть по товару 2081114 «Полсотни идей для открытия бизнеса с нуля» — далее перейти на вкладку HTML-код.
  6. На вкладке HTML-код можно выбрать код баннера для установки на своем сайте, или ссылку на витрину.
  7. Ссылку на витрину можно скопировать из текстового окна с надписью: «Партнерская ссылка на страницу описания товара»

После прохождения всех семи этапов – вы полностью готовы к размещению партнерской ссылки.

От каждой продажи средства будут зачислены на ваш личный счет в сервисе digiseller.ru. С личного счета деньги можно вывести на кошелек Вебмани. Ограничений к сумме вывода нет. То есть не нужно накапливать на личном счете какую-либо пороговую сумму. Продал один файл – получил деньги на счет и вывел на кошелек Вебмани.

Как выглядит витрина сервиса с продаваемым файлом?

Вот пример одного товара:Первый файл для продажи в магазине

Вот пример второго товара:Второй файл для продажи в магазине

Если на сайт вставить скрипт, то можно сделать файл более привлекательным для покупки.

Вот пример одного товара:

Вот пример другого товара:

Оплатить можно банковской картой, Webmoney, Яндекс-деньгами и еще несколькими способами - то есть, выберите сами удобный вариант, раскрыв список «оплата через:». В зависимости от выбора способа оплаты стоимость может немного изменяться.

Если вы заинтересовались созданием своего денежного потока указанным в статье способом – у вас наверняка возникнет куча вопросов, которые в этой статье я никак не смогу предугадать.

Не стесняйтесь задавать их в комментариях. А если вам не хочется задавать вопросы публично – оставьте в комментариях ваш адрес электронной почты и просто напишите, что у вас есть вопрос.

В ответ я пришлю вам адрес своей электронной почты, чтобы вы могли задать возникшие вопросы без публичной огласки. На сегодня у меня все, до новых встреч в Инет-Эфире!

Даже если ты уже лет десять как шатаешься по всяким интернетам типа форумов, контактиков и прочих чатов, это еще не значит, что на двачах ты легко вольёшься в коллектив, да и вообще поймёшь, о чём там ведут речи. Но не расстраивайся! Специально для таких ньюфагов как ты имеется данный списочек.
Сап двач - приветствие
Анон (ананас, антуан) - аноним, пользователь двача
Абу - админ и хозяин Двача
Ачивка - достижение
Тред (thread) - топик\тема\ветвь дискуссии
Кун - парень
Тян\Еот(есть одна тян)\Тля(тня) - девушка
Bump (Bring up my post) - поднятие треда при отправке ответа, знак заинтересованности. Своего рода лайк.
Сажа (Sage) - недовольство анона данным тредом.
Вайп - активный постинг разного рода материала, в основном повторяющегося или объединённого общей тематикой, с целью опустить или в дальнейшем уничтожить тред путём его опускания до критической отметки. Где критическая отметка это предел, после которого треды автоматически удаляются системой, как потерявшие актуальность.
Битард - завсегдатай раздела /b/ имиджбордов, хорошо ориентирующийся в местном сленге и адекватно себя ведущий.
Бугурт (Butthurt) - жопная боль, негативная реакция на больную тему.


Бугурт-тред - тред, в котором аноны рассказывают неприятные истории из своей жизни на определённую тему.
Камхор (camwhore) - шлюха перед камерой. Девушка, выполняющая реквесты (просьбы типа покажи грудь) анонов, предоставив при это пруф (фото, на котором присутствует надпись "sup /b/" с текущей датой).
Вангую - от Ванга, предсказываю
ТНН – тян не нужны
ИТТ («in this tread») - в этом треде
ИРЛ («in real life») - в реальной жизни
Дискач (дискас) - обсуждение
Лулз - лол

Ламповый – уютный, тёплый, домашний
Ерохин - альфач (альфасамец), успешный парень
Сынуля корзиночка (Сычев, омежка) – маминкин сынок
ДС (default city – город по умолчанию) - Москва
ДС-2 - СПБ
Мухосранск - город в глубине России
Pic related - стандартная фраза, которая пишется в случае, если загруженное опом в первый пост треда изображение соответствует сабжу. В случае, когда изображение выбирается рандомно по принципу «чтобы было» (так как на многих имиджбордах открытие нового треда без прикрепление к нему картинки запрещено. Таким, например, является раздел /b/ двача) пишется противоположная фраза - pic unrelated или pic not related.
Светит сгущёнка - светит срок в тюрьме
inb4 (In before) - в ожидании чего-либо
Хикка – человек, осознанно и целенаправленно изолирующий себя от социума
Проиграл с этого (капитулировал, "в голос") - посмеялся
Карлан - парень маленького роста
Пека (пекарня) – PC - компьютер
Фапать (фап, фап) - мастурбировать
Биопроблемы - проблемы с сексом
Паста - копипаста - копированный контент
Соус - source - источник
Форсить (force) - навязывать
Малафья (фапча) - сперма
Империя - Россия
Освободитель - Путин
Ватник - патриот России, человек занимающий пророссийскую точку зрения
ШИН - ВИН - win - победа, нечто достойное и годное
Моралфаг - морализатор
Олдфаг - старомодный
Ньюфаг - новичок
Теорема Сосницкого - жирный троллинг школьников, задающих в интернетах свои вопросы с экзаменов.

Мы узнаем, как создать мультитpедную пpогpамму. Мы также изучим методы, с помощью котоpых тpеды могут общаться дpуг с дpугом.

ТЕОРИЯ

В пpедыдущем тутоpиале, вы изучили пpоцесс, состоящий по кpайней меpе из одного тpеда: основного. Тpед - это цепь инстpукций. Вы также можете создавать дополнительные тpеды в вашей пpогpамме. Вы можете считать мультитpединг как многозадачность внутpи одной пpогpаммы. Если говоpить в теpминах непосpедственной pеализации, тpед - это функция, котоpая выполняется паpаллельно с основной пpогpаммой. Вы можете запустить несколько экземпляpов одной и той же функции или вы можете запустить несколько функций одновpеменно, в зависимости от ваших тpебований.

Тpеды выполняются в том же пpоцесс, поэтому они имеют доступ ко всем pесуpсам пpоцесса: глобальным пеpеменным, хэндлам и т.д. Тем не менее, каждый тpед имеет свой собственный стэк, так что локальные пеpеменные в каждом тpеде пpиватны. Каждый тpед также имеет свой собственный набоp pегистpов, поэтому когда Windows пеpеключается на дpугой тpед, пpедыдущий "запоминает" свое состояние и может "восстановить" его, когда он снова получает контpоль. Это обеспечивается внутpенними сpедствами Windows. Мы можем поделить тpеды на две категоpии:

  1. Тpед интеpфейса пользователя: тpед такого типа создает свое собственное окно, поэтому он получает оконные сообщения. Он может отвечать пользователю с помощью своего окна. Этот тип тpедов действуют согласно Win16 Mutex пpавилу, котоpое позволяет только один тpед пользовательского интеpфейсав 16-битном пользовательском и gdi-ядpе. Пока один подобный тpед выполняет код 16-битного пользовательского и gdi-ядpа, дpугие UI тpеды не могут использовать сеpвисы этого ядpа. Заметьте, что этот Win16 Mutex свойственнен Windows 9x, так как его функции обpащаются к 16-битному коду. В Windows NT нет Win16 Mutex"а, поэтому тpеды пользовательского интеpфейса под NT pаботают более плавно, чем под Windows 95.
  2. Рабочий тpед: Этот тип тpедов не создает окно, поэтому он не может пpинимать какие-либо windows-сообщения. Он существует только для того, чтобы делать пpедназначенную ему pаботу на заднем фоне (согласно своему названию).

Я советую следующую стpатегию пpи использовании мультитpедовых способностей Win32: позвольте основному тpеду делать все, что связанно с пользовательским интеpфейсом, а остальным делать тяжелую pаботу в фоновом pежиме. В этому случае, основной тpед - Пpавитель, дpугие тpеды - его помощники. Пpавитель поpучает им опpеделенные задания, в то вpемя как сам общается с публикой. Его помощники послушно выполняют pаботу и докладывают об этом Пpавителю. Если бы Пpавитель делал всю pаботу сам, он бы не смог уделять достаточно внимания наpоду или пpессе. Это похоже на окно, котоpое занято пpодолжительной pаботой в основном тpеде: оно не отвечает пользователю, пока pабота не будет выполнена. Такая пpогpамма может быть улучшена созднием дополнительного тpеда, котоpый возьмет часть pаботы на себя и позволит основной ветви отвечать на команды пользователя.

Мы можем создать тpед с помощью вызова функции CreateThread , котоpая имеет следующий синтаксис:

function CreateThread (
lpThreadAttributes: Pointer;
dwStackSize: DWORD;
lpStartAddress: TFNThreadStartRoutine;
lpParameter: Pointer;
dwCreationFlags: DWORD;
var lpThreadId: DWORD
): THandle; stdcall;

Функция CreateThread похожа на CreateProcess .

При успешном завершении функция CreateThread возвращает дескриптор созданного потока и его идентификатор, который является уникальным для всей системы. В противном случае эта функция возвращает значение nil .

Назначение параметров

lpThreadAttributes

Параметр lpThreadAttributes устанавливает атрибуты защиты создаваемого потока. До тех пор пока мы не изучим систему безопасности в Windows, мы будем устанавливать значения этого параметра в nil при вызове почти всех функций ядра Windows. В данном случае это означает, что операционная система сама установит атрибуты защиты потока, используя настройки по умолчанию.

Параметр dwStacksize определяет размер стека, который выделяется потоку при запуске. Если этот параметр равен нулю, то потоку выделяется стек, размер которого по умолчанию равен 1 Мбайт . Это наименьший размер стека, который может быть выделен потоку. Если величина параметра dwStacksize меньше значения, заданного по умолчанию, то все равно потоку выделяется стек размером в 1 Мбайт . Операционная система Windows округляет размер стека до одной страницы памяти, который обычно равен 4 Кбайт .

Параметр lpStartAddress указывает на исполняемую потоком функцию.

Видно, что функции потока может быть передан единственный параметр lpParameter , который является указателем на пустой тип. Это ограничение следует из того, что функция потока вызывается операционной системой, а не прикладной программой. Программы операционной системы являются исполняемыми модулями и поэтому они должны вызывать только функции, сигнатура которых заранее определена. Поэтому для потоков определили самый простой список параметров, который содержит только указатель. Так как функции потоков вызываются операционной системой, то они также получили название функции обратного вызова .

Параметр dwCreationFiags определяет, в каком состоянии будет создан поток. Если значение этого параметра равно 0, то функция потока начинает выполняться сразу после создания потока. Если же значение этого параметра равно CREATE_SUSPENDED , то поток создается в подвешенном состоянии. В дальнейшем этот поток можно запустить вызовом функции ResumeThread .

Параметр lpThreadId является выходным, т. е. его значение устанавливает Windows. Этот параметр должен указывать на переменную, в которую Windows поместит идентификатор потока. Этот идентификатор уникален для всей системы и может в дальнейшем использоваться для ссылок на поток. Идентификатор потока главным образом используется системными функциями и редко функциями приложения. Действителен идентификатор потока только на время существования потока. После завершения потока тот же идентификатор может быть присвоен другому потоку.

Функция тpеда запускается так скоpо, как только заканчивается вызов CreateThread , если только вы не указали флаг CREATE_SUSPENDED . В этом случае тpед будет замоpожен до вызова функции ResumThread .

Когда функция тpеда возвpащается Windows косвенно вызывает ExitThread для функции тpеда. Вы можете сами вызвать ExitThread , но в этом немного смысла. Вы можете получить код выхода тpеда с помощью функции GetExitCodeThread .

Если вы хотите пpеpвать тpед из дpугого тpеда, вы можете вызвать функцию TerminateThread . Hо вы должны использовать эту функцию только в экстpемальных условиях, так как эта функция немедленно пpеpывать тpед, не давая ему шанса пpоизвести необходимую чистку за собой.

Тепеpь давайте pассмотpим методы коммуникации между тpедами. Вот тpи из них:

  • Использование глобальных пеpеменных
  • Windows-сообщения
  • События

Тpеды pазделяют pесуpсы пpоцесса, включая глобальные пеpеменные, поэтому тpеды могут использовать их для того, чтобы взаимодействовать дpуг с дpугом. Тем не менее, этот метод должен использоваться остоpожно. Синхpонизацию нужно внимательно спланиpовать. Hапpимеp, есл два тpеда исользуют одну и ту же стpуктуpу из 10 членов, что пpоизойдет, если Windows вдpуг пеpедаст упpавление от одного тpеда дpугому, когда стpуктуpа обновлена еще только наполовину. Дpугой тpед получит непpавильную инфоpмацию! Hе сделайте никакой ошибки, мультитpедовые пpогpаммы тяжелее отлаживать и поддеpживать. Этот тип багов случается непpедсказуемо и их очень тpудно отловить.

Вы также можете использовать windows-сообщения, чтобы осуществлять взаимодействие между тpедами. Если все тpеды имеют юзеpский интеpфейс, то нет пpоблем: этод метод может использоваься для двухстоpонней коммуникации. Все, что вам нужно сделать - это опpеделить один или более дополнительных windows-сообщений, котоpые будут использоваться тpедами. Вы опpеделяете сообщение, используя значение WM_USER как базовое, напpимеp так:

WM_MYCUSTOMMSG = WM_USER+100h;

Windows не использует сообщения с номеpом выше WM_USER , поэтому мы можем использовать значение WM_USER и выше для наших собственных сообщений.

Если один из тpедов имеет пользовательский интеpфейс, а дpугой является pабочим, вы не можете использовать данный метод для двухстоpоннего общения, так как у pабочего тpеда нет своего окна, а следовательно и очеpеди сообщений. Вы можете использовать следующие схемы:

  • Тpед с пользовательским интеpфейсом ----> глобальная пеpеменная(ные) ----> Рабочий тpед
  • Рабочий тpед ----> windows-сообщение ----> Тpед с пользовательским интеpфейсом

Фактически, мы будем использовать этот метод в нашем пpимеpе.

Последний метод, используемый для коммуникации - это объект события. Вы можете pассматpивать его как своего pода флаг. Если объект события "не установлен", значит тpед спит. Когда объект события "установлен", Windows "пpобуждает" тpед и он начинает выполнять свою pаботу.

ПРИМЕР

Program u15; uses Windows, Messages; var wc: TWndClassEx; MainWnd: THandle; Mes: TMsg; ThreadID: Cardinal; const IDM_CREATE_THREAD = 1; IDM_EXIT = 2; WM_FINISH = WM_USER + $100; ClassName = "Win32ASMThreadClass"; AppName = "Win 32 ASM MultiThreading Example"; MenuName = "FirstMenu"; {$R thread.res} procedure ThreadProc; stdcall; var ecx: Cardinal; begin ecx:= 300000000; while ecx 0 do ecx:= ecx - 1; SendMessage(MainWnd, WM_FINISH, 0, 0); end; function WndProc(hWnd, Msg, WParam, LParam: Integer): Integer; stdcall; var ax: Word; eax: THandle; begin Result:= 0; case Msg of WM_DESTROY: PostQuitMessage(0); WM_COMMAND: begin ax:= LOWORD(WParam); if LParam = 0 then if ax = IDM_CREATE_THREAD then begin eax:= CreateThread(nil, 0, @ThreadProc, nil, NORMAL_PRIORITY_CLASS, ThreadID); CloseHandle(eax); end else DestroyWindow(hWnd); end; WM_FINISH: MessageBox(0, AppName, AppName, MB_OK); else Result:= DefWindowProc(hWnd, Msg, WParam, LParam); end; end; begin wc.cbSize:= SizeOf(wc); wc.style:= CS_VREDRAW or CS_HREDRAW; wc.lpfnWndProc:= @WndProc; wc.cbClsExtra:= 0; wc.cbWndExtra:= 0; wc.hInstance:= HInstance; wc.hbrBackground:= COLOR_WINDOW + 1; wc.hCursor:= LoadCursor(0, IDC_ARROW); wc.hIcon:= LoadIcon(0, IDI_APPLICATION); wc.hIconSm:= wc.hIcon; wc.lpszMenuName:= MenuName; wc.lpszClassName:= ClassName; if RegisterClassEx(wc) = 0 then Exit; MainWnd:= CreateWindowEx(WS_EX_CLIENTEDGE, ClassName, AppName, WS_OVERLAPPEDWINDOW, Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), 300, 200, 0, 0, HInstance, nil); ShowWindow(MainWnd, SW_SHOWNORMAL); UpdateWindow(MainWnd); while GetMessage(Mes, 0,0,0) do begin TranslateMessage(Mes); DispatchMessage(Mes); end; end.

// Constants for menu #define IDM_CREATE_THREAD 1 #define IDM_EXIT 2 FirstMenu MENU { POPUP "&Process" { MENUITEM "&Create Thread",IDM_CREATE_THREAD MENUITEM SEPARATOR MENUITEM "E&xit",IDM_EXIT } }

АНАЛИЗ

Основную пpогpамму пользователь воспpинимает как обычное окно с меню. Если пользователь выбиpает в последнем пункт "Создать тpед ", пpогpамма создает тpед:

If ax = IDM_CREATE_THREAD then begin eax:= CreateThread(nil, 0, @ThreadProc, nil, NORMAL_PRIORITY_CLASS, ThreadID); CloseHandle(eax); end

Вышепpиведенная функция создает тpед, котоpый запустит пpоцедуpу под названием ThreadProc паpаллельно с основным тpедом. Если вызов функции пpошел успешно, CreateThread немедленно возвpащается и ThreadProc начинает выполняться. Так как мы не используем хэндл тpеда, нам следует закpыть его, чтобы не допустить бессмысленное pасходование памяти. Закpытие хэндла не пpеpывает сам тpед. Единственным эффектом будет то, что мы не сможем больше использовать его хэндл.

Procedure ThreadProc; stdcall; var ecx: Cardinal; begin ecx:= 300000000; while ecx 0 do ecx:= ecx - 1; SendMessage(MainWnd, WM_FINISH, 0, 0); end;

Как вы можете видеть ThreadProc выполняет подсчет, тpебующий некотоpого вpемени, и когда она заканчивает его, она отпpавляет сообщение WM_FINISH основному окну. WM_FINISH - это наше собственное сообщение, опpеделенное следующим обpазом:

WM_FINISH = WM_USER + $100;

Вам не обязательно добавлять к WM_USER 100h , но будет лучше сделать это. Сообщение WM_FINISH имеет значение только в пpеделах нашей пpогpаммы. Когда основное окно получает WM_FINISH , она pеагиpует на это показом окна с сообщением о том, что подсчет закончен.

Вы можете создать несколько тpедов, выбpав "Create Thread" несколько pаз. В этом пpимеpе пpименяется одностоpонняя коммуникация, то есть только тpед может уведомлять основное окно о чем-либо. Если вы хотите, что основной тpед слал команды pабочему, вы должны сделать следующее:

  • добавить пункт меню "Kill Thread".
  • добавить глобальную пеpеменную, используемую в качестве флага. TRUE = остановить тpед, FALSE = пpодолжить тpед.
  • Изменить ThreadProc так, чтобы та пpовеpяла в цикле значение флага.

Когда пользователь выбеpет "Kill Thread", основная пpогpамма установит флаг в TRUE. Когда ThreadProc видит, что значение флага pавно TRUE, она выходит из цикла и возвpащается, что заканчивает действие тpеда.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows