Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Что такое нити?

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Nic
Гость





СообщениеДобавлено: Пн Апр 08 2002 15:36    Заголовок сообщения: Что такое нити? Ответить с цитатой

Подскажите что такое нити и для чего они нужны. Заранее спасибо!
Вернуться к началу
Adil
Гость





СообщениеДобавлено: Пн Апр 08 2002 16:16    Заголовок сообщения: Re: Что такое нити? Ответить с цитатой

Нить (thread), или поток (не путать со stream) - раздельно выполняемые задачи системы. В однопроцессорной системе процессор может разделять ресурсы (время, память и т.д.) между различными потоками - получается многозадачная система. В многопроцессорной системе потоки могут разделяться между процессорами. Одно приложение может включать несколько потоков (multithread application).
Вернуться к началу
ilyasov
Гость





СообщениеДобавлено: Пн Апр 08 2002 18:30    Заголовок сообщения: Не совсем Ответить с цитатой

Есть понятие процесса -отдельно выполняемой программной единицы. Многозадачные системы, как правило, оперируют именно с процессами. Однако, у процессов есть сложности в части совместного доступа к данным в памяти. Два разных процесса (без дополнительных ухищрений) не могут получить доступ к адресному пространству друг друга. Нити же -один из способов организации параллельного выполнения двух и более потоков команд при совместном доступе к одним и тем же данным. В некотором смысле, нить -ущербный процесс. Следует также иметь ввиду, что не во всех системах возможна реализация многонитевой программы (даже если система и многозадачная).
Вернуться к началу
яяя
Гость





СообщениеДобавлено: Пн Апр 08 2002 19:28    Заголовок сообщения: процесс без нитей не бывает (-) Ответить с цитатой

-
Вернуться к началу
ilyasov
Гость





СообщениеДобавлено: Вт Апр 09 2002 12:47    Заголовок сообщения: Интересная мысль... В Windows может быть, но не в других системах Ответить с цитатой

В некоторых системах понятия нитей вообще не существует. В различных реализациях UNIX понятие процесс вообще никак не связано с нитями как таковыми (изначально этого понятия даже не существовало). Как я ранее отмечал, реализация нитей в каждой системе происходит по-своему. Для нормального параллелизма при многонитевой программе система должна уметь дипетчеризовать отдельные нити (а не процессы). Таковая поддержка должна существовать на уровне ядра, что не везде имеет место. Поэтому то для FreeBSD (кажется в linuxthreads) используется вызов fork, порождающий новый процесс.
Вернуться к началу
яяя
Гость





СообщениеДобавлено: Вт Апр 09 2002 16:26    Заголовок сообщения: это лишь разновидности реализации многозадачности. Если есть нити, то в процессе должна быть хотя бы одна нить, ибо контекст вы Ответить с цитатой

-
Вернуться к началу
ilyasov
Гость





СообщениеДобавлено: Вт Апр 09 2002 17:45    Заголовок сообщения: М-да..., сильно сказано Ответить с цитатой

При создании UNIX в качестве единственного объекта, используемого в механизме реализации многозадачной работы, было введено понятие процесса. Таковым являлась любая программа, которая была изолирована по адресному пространству от других однотипных объектов и рассматривалась с точки зрения системы как целый и неделимый объект. Все действия по запуску и остановке, диспетчеризации проводились именно с процессом, ни о каких нитях речи не было.
Для реализации нитей система должна производить действия по диспетчеризации уже не над процессами, а над нитями, т.е. в такой системе минимальным объектом диспетчеризации будет нить, а не процесс.
Утверждение же о том, что при наличии нитей в процессе должна быть хотя бы одна нить тривиально и никак не влияет на утверждение о том, что есть системы в которых невозможно породить несколько потоков команд при общих данных. Исторически UNIX развивалась как раз из положения о изолированности процессов.
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...