37 / 15 / 3
Регистрация: 15.07.2010
Сообщений: 326

[Delphi] Многопоточность

29.08.2010, 11:10. Показов 26611. Ответов 67
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Интерисует след. вопрос:
"Как сделать создание потоков? (кол-во зависит от того сколько укажет пользователь)"

Хотелось бы увидеть "готовый код", лазя по гуглу оч много информации, но там слишком много лишнего текста читая который тупо мозг взрывается ))

Добавлено через 4 минуты
+ как сделать синхронизацию (Первый пост редактировать не могу, проблемы в опере...)

Добавлено через 19 часов 3 минуты
Есть следующие строчки
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  TNewThread = class(TThread)
  private
  protected
    procedure Execute; override;
  public
    constructor Create(CreateSuspended: Boolean);
  end;
 
constructor TNewThread.Create(CreateSuspended: Boolean);
begin
  inherited Create(CreateSuspended);
end;
 
 
procedure TNewThread.Execute;
begin
 
end;
 
 
 TNewThread.Create(false);
Если последнюю строчку я зациклю циклом for у меня будут создаваться новые потоки? или будет циклиться один?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.08.2010, 11:10
Ответы с готовыми решениями:

Многопоточность в Delphi
Доброго времени суток однако, люди помоги, есть следующая задача: нужно создать программу которая вычисляет простоту числа 3-мя потоками,...

Подскажите где можно почитать про многопоточность в Delphi
Всем привет! Из названия темы уже ясно, что мне нужна информация по многопоточности в Delphi. Дайте пару линков где можно найти почитать...

Что лучше брать Delphi XE2, Delphi XE, Delphi 7?
Привет форумчане! У меня вопрос: что лучше брать Delphi XE2, Delphi XE, Delphi 7? Как вообще различаются серия Delphi XE, и Delphi 7?

67
0 / 0 / 0
Регистрация: 13.12.2013
Сообщений: 18
15.12.2013, 14:14
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от FIL Посмотреть сообщение
В данном случае надо использовать метод Synchronize, а не семафоры.
И подсчет кол-ва потоков так правильно работать не будет.
подсчет работает, и кажется корректно видно как по завершении потока счетчик уменьшается до нуля либо сам (не осталось строк), либо по моей команде (cb_work)

Добавлено через 1 час 46 минут
в Synchronize пока вникать не стал. создал несколько критических секций. для пробы мне пойдет. с базой данных работает корректно
0
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 22
30.08.2015, 00:31
Извиняюсь, вопрос может быть не в тему
Я пытаюсь сделать клиент и сервер на сокетах
Сервер принимает команды,
Клиент №1 отправляет,например, команду регистрации
Клиент №2 отправляет, например, команду логиниться
....
И когда клиентов много,я смотрю, что приходит в сокет...
бывает проскакивает такое что команды суммируются в одну команду
И следовательно сервер не понимает, что за команда пришла
Это мне надо делать сервер многопоточным?
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
30.08.2015, 11:44
Сокеты ничего не знают о твоих командах.
Они тупо передают данные по своему внутреннему алгоритму.
Поэтому в полученной посылке может быть все, что угодно: полкоманды, команда, полторы команды и т.д.
Соответственно, парсинг всего этого дела ложится полностью на плечи программиста.
0
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 22
30.08.2015, 17:26
Я это прекрасно понимаю!
Вопрос не в этом. Вопрос в том что сокет сервера принимает не одну команду, а сразу две
У меня команда регистрации идет reg#
Следом идет команда логина login#
Но бывает что в сокет попадает одна строка и выглядит так
reg#login#

Может у кого есть какие идеи, как с этим бороться?
Или кто то сталкивался с такой же проблемой?

Добавлено через 2 минуты
Может клиенты просто отправляют в одну и ту же секунду команды?
Поэтому команды суммируются в одну на сервере
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
30.08.2015, 21:11
Цитата Сообщение от kannibal Посмотреть сообщение
Я это прекрасно понимаю!
Если понимаешь, то чего продолжаешь повторять те же самые вопросы, на которые я ответил постом выше?
0
61 / 51 / 25
Регистрация: 17.12.2013
Сообщений: 258
31.08.2015, 07:48
Твой клиент отправил на сервер данные (в твоем случае стоку 'reg#'), не дождавшись ответа от сервера снова шлет ему данные. Между этими акциями проходит менее 1 мс. Соответственно сервер читает из сокета обе строки как одну.
Это не программная ошибка, а ошибка в разработке прикладного протокола.
Разработай для начала правила, по которым у тебя будут общаться сервер и клиент.
Сервер всегда должен отвечать клиенту. Клиент не должен слать на сервер ничего, пока не получит ответ на предыдущий запрос.
Например:
Клиент серверу: reg#
Сервер клиенту: ok#
Клиент серверу: fuck#
Сервер клиенту: cmdnotfound#

Ну и многопоточность тут совсем не причем =)
0
 Аватар для Argey
1 / 1 / 0
Регистрация: 11.09.2015
Сообщений: 6
11.09.2015, 13:22
А почему бы просто не использовать
Delphi
1
synchronize
Так же намного проще будет чем тулить семафоры?
0
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 22
27.10.2015, 00:19
KMSNasgool, пробовал и так, как Вы пишите. Не получается.
С сервера отправляю ок#имя_клиента#
но на сервер опять проскакивают строки reg#reg#
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2015, 00:19

Многопоточность
Видел много статей по многопоточности,но мне надо просто самое основное. var s:string; begin s:='qwe'; showmessage(s); ...

Многопоточность
Гуглил, информации в интернете много, даже слишком, поэтому голова уже взрывается. Суть проблемы: есть форма, есть цикл, при работе цикла...

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

Многопоточность
Здравствуйте! Прошу помочь реализовать многопоточность. Написал брут, когда запускаю в 1 поток, всё идёт ок, как запускаю в 2 и более всё...

многопоточность
Всем привет! Вопрос в следующем: файл скачивается из интернета с помощью следующей функции: function GetInetFile(const fileURL,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
68
Ответ Создать тему
Опции темы

Новые блоги и статьи
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru