Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2013, 14:54   #21
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

можно ли заюзать мьютекс или семафор? (гуглил говорят что можно), так что лучше мьютекс или семафор? т.к если не врут то мьютекс для использования нескольких процессов.
FleXik вне форума Ответить с цитированием
Старый 07.07.2013, 15:12   #22
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от FleXik Посмотреть сообщение
можно ли заюзать мьютекс или семафор? (гуглил говорят что можно), так что лучше мьютекс или семафор? т.к если не врут то мьютекс для использования нескольких процессов.
они оба могут применятся несколькими процессами, у них разная механика как бы, исходите из этого.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.07.2013, 15:29   #23
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

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

Для хранения потоков использовать массив? Вы чего, не в 2000м году живем.
Придуманы TThreadList и TList.

Чтобы разбить файл на патоки не нужно вертеть крит. секции, если из файла берутся строки/объекты по 1му за раз. Обьекты синхронизации замедляют.

На примете того же списка строк:
Strings.Count div <кол-во потоков> - получаем кол-во строк, которое приходится на каждый поток
Strings.Count mod <кол-во потоков> - получаем остаток от деления, т.е. кол-во строк, которые некуда деть. Я обычно пихаю его в последний поток.

Код сами напишете.
Человек_Борща вне форума Ответить с цитированием
Старый 07.07.2013, 15:31   #24
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Человек_Борща, спасибо буду пробовать
FleXik вне форума Ответить с цитированием
Старый 07.07.2013, 15:34   #25
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Чтобы разбить файл на патоки не нужно вертеть крит. секции, если из файла берутся строки/объекты по 1му за раз. Обьекты синхронизации замедляют.
чтение строк это не атомарная операция, её стоит защищать критсекцией.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.07.2013, 16:20   #26
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
чтение строк это не атомарная операция, её стоит защищать критсекцией.
В предложенном мною варианте, ещё ДО запуска потока происходит распределение и изолирование(у каждого потока свой список строк) некоторого количества строк по потокам, а затем запуск.
Человек_Борща вне форума Ответить с цитированием
Старый 07.07.2013, 16:48   #27
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
В предложенном мною варианте, ещё ДО запуска потока происходит распределение и изолирование(у каждого потока свой список строк) некоторого количества строк по потокам, а затем запуск.
а, ну тогда да.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
И снова COM.... kineziz Общие вопросы C/C++ 6 22.07.2012 23:10
и снова капча! acteralex PHP 14 14.07.2012 20:31
Снова и снова. ladose Общие вопросы Delphi 1 11.04.2012 03:37
и снова С++ ltony Помощь студентам 5 04.02.2012 02:16
MDIChild снова и снова... Siber_Dec Общие вопросы Delphi 2 13.12.2009 03:24