Статьи Галерея Форум Чат Файлы HowTo Ссылки Поиск
Текущее время: 22 авг 2019, 20:36




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Многопоточность в Си?
СообщениеДобавлено: 15 фев 2006, 02:36 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 13.08.2004
Сообщения: 891
Откуда: Минск
Возможно ли в Си использовать многопоточность?

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


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 15 фев 2006, 02:50 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 06.02.2002
Сообщения: 9760
Откуда: Менск
ГМ, ИМХО вопрос задан категорически неправильно. Мое дилетантское мнение состоит в том, что язык програмирования C не знает ничего про потоки, процессы, io и т.п. прелести жизни ОС... Все это делается стандартными библиотеками...
PS: В вашем случае - начните курить маны скажем с pthread_create
PPS: А еще лучше - почитать что-нить толковое по програамиированию сабж - кажется у Стивенса (могу ошибаться) таки это описано в относительно общем виде, а детали линуксячьей реализации надо искать в более других источниках.

_________________
Опыт растет прямо пропорционально выведенному из строя оборудованию


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 15 фев 2006, 10:51 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 30.08.2002
Сообщения: 2339
Откуда: Minsk
вопрос сформулирован действительно некорректно.

Стивенса читать на этом уровне понимания - бесполезно. К тому же то что выходило на русском (двухтомник Network Programming) про потоки содержит маленькую малоинформативную главу.

http://www.opennet.ru/docs/137.shtml - начните отсюда

http://www.opengroup.org/onlinepubs/000095399/toc.htm - справочная информация

_________________
И увидел я зверя, выходящего из тундры. И число его было 3.14159265358979324...


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 15 фев 2006, 11:04 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 26.06.2004
Сообщения: 321
Откуда: Беларусь, Минск
Это не к Си, а к Оси (всмысле операционной системы).

_________________
Программист - это человек, который сначала долго думает, чтобы потом ничего не делать.


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 15 фев 2006, 11:10 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 28.11.2002
Сообщения: 1117
Откуда: Минск
mend0za, у Стивенса была книжка про IPC тоже на русском, там было много.

Человеку нужна все-таки многопоточность или многопроцессность? :wink:

_________________
I'll kill this code without a knife -- with only fork().


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 15 фев 2006, 12:01 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 13.08.2004
Сообщения: 891
Откуда: Минск
Возможно и некорректно, т.к. Си я знаю только после Perl и PHP :). Только вчера купил Кернигана Ритчи "Язык программирования Си".

Но вопрос собственно откуда: когда листал книгу по Java - помню, одна из первых глав была посвящена программированию многопоточного приложения.

Serj, Выходит, ОС должна распараллеливать задачу?

_________________
https://grinchik.com/


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 15 фев 2006, 12:04 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 28.11.2002
Сообщения: 1117
Откуда: Минск
Victor Gr., вызывая функции библиотек, ты просишь ОС создать новые потоки/процессы и управлять ими и их взаимоотношениями с родителем.

_________________
I'll kill this code without a knife -- with only fork().


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 15 фев 2006, 14:29 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 30.08.2002
Сообщения: 2339
Откуда: Minsk
Sanitar: да, и ты брал её читать именно у меня :)

только там практически ничего нет про потоки

_________________
И увидел я зверя, выходящего из тундры. И число его было 3.14159265358979324...


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 15 фев 2006, 14:42 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 28.11.2002
Сообщения: 1117
Откуда: Минск
mend0za, не поверишь -- покупал в "Академкниге" за свои кровные и до сих пор на полке стоит, правда собакой надгрызенная.

Про потоки там вроде есть, но меньше чем про семафоры -- за давностью лет не помню.

_________________
I'll kill this code without a knife -- with only fork().


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 15 фев 2006, 14:58 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 26.06.2004
Сообщения: 321
Откуда: Беларусь, Минск
Цитата:
Serj, Выходит, ОС должна распараллеливать задачу?

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

_________________
Программист - это человек, который сначала долго думает, чтобы потом ничего не делать.


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2006, 13:23 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 13.08.2004
Сообщения: 891
Откуда: Минск
Я это к тому, что с теперешним замедлением развития процессоров ввысь (наращивания тактовой частоты) и интенсивным развитием вширь (появление двухядерности, двухпроцессорности, Hyper-Threading, двухпроцессоро-двухядерности) нужно думать о конструировании программ с учётом этого.

Роадмапы Intel и AMD однозначно дают понять то, что в будущем никакого намёка даже на одноядерность не будет.

Т.к. ОС трудно самой распараллелить задачу, нужно будет ей помогать.

_________________
https://grinchik.com/


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2006, 14:27 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 28.11.2002
Сообщения: 1117
Откуда: Минск
Т.к. ОС трудно самой распараллелить задачу, нужно будет ей помогать.

Поясни мне глубокомысленность этого утверждения?
Смею предположить что просто версии gcc для многоядерных процев должны включать ключ (оптимизировать для SMP). И ОС будет очень легко распараллеливать задачи.

И само SMP для линуха явление не новое...

_________________
I'll kill this code without a knife -- with only fork().


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 16 фев 2006, 20:59 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 06.02.2002
Сообщения: 9760
Откуда: Менск
Victor Gr., ОС сама и не умеет распараллеливать задачу - это не ее дело, максимум могут каким-то образом распараллеливаться системные функции, но вот уж ваш код - извольте распараллелить сами. Самое трудное - не техническая реализация параллелизма, а маштабирование алгоритма на N испольнительных устройств, причем N может быть заренее не изветно. И рспараллеливание имеет смысл и на однопроцессорных устройствах - т.к. хватает медленных опреаций - тот же io...

_________________
Опыт растет прямо пропорционально выведенному из строя оборудованию


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 18 фев 2006, 23:19 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 13.08.2004
Сообщения: 891
Откуда: Минск
Большое спасибо за содержательные и интересные ответы Всем!

У меня ещё вопрос... А gcc в Линуксе полностью ANSI-совместимый?

_________________
https://grinchik.com/


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
[ All resources are available under GNU GPL ] [ Support ] [ Hosted by DataHata | MyCloud.by ] [ Powered by phpBB® Forum Software © phpBB Group ]

LVEE Winter LVEE Rambler's Top100