ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
Еще раз о Многопоточности |

10.06.2010, 22:27
|
|
Новичок
Регистрация: 03.05.2009
Сообщений: 22
Провел на форуме: 38103
Репутация:
0
|
|
Еще раз о Многопоточности
Перечетал кучу инфы по Многопоточности.
возникли вопросы. подскажите если не затруднит.
допустим мне надо сделать GEt запрос тапа
Код:
IdHTTP1.Get('http://'+Form1.Edit1.Text+'/index.php?id=1');
IdHTTP1.Get('http://'+Form1.Edit1.Text+'/index.php?id=2');
IdHTTP1.Get('http://'+Form1.Edit1.Text+'/index.php?id=n');
с одним потоком я разабрался как это сделать. а вот как в 10 не могу понять
как первому потоку дать id= 1 итд
и второй вопрос как проверять если поток остоновился tuk снова запустить
|
|
|

10.06.2010, 22:42
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме: 1819761
Репутация:
180
|
|
Сообщение от akimov_aleks
как первому потоку дать id=1 итд
и второй вопрос как проверять если поток остоновился tuk снова запустить
1) почитай про синхронизацию потоков
2) зачем его запускать, если он остановился? сделай так, чтобы он не останавливался, пока это не будет нужно.
|
|
|

10.06.2010, 23:27
|
|
Новичок
Регистрация: 03.05.2009
Сообщений: 22
Провел на форуме: 38103
Репутация:
0
|
|
Сообщение от M_script_
1) почитай про синхронизацию потоков
2) зачем его запускать, если он остановился? сделай так, чтобы он не останавливался, пока это не будет нужно.
читал написано очень запутоно... зачем пишут книжки в 100 страниц когда нужна всего лишь 1 страничка.
если есть укого нибуть примерчик как сделть поделитесь
|
|
|

11.06.2010, 00:10
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме: 1819761
Репутация:
180
|
|
Сообщение от akimov_aleks
читал написано очень запутоно... зачем пишут книжки в 100 страниц когда нужна всего лишь 1 страничка.
если есть укого нибуть примерчик как сделть поделитесь
Если 100 страниц читать лень про различные методы синхронизации, прочитай только о критических секциях, тебе хватит.
Если делфи или билдер, можешь использовать класс TThread с его Synchronize
|
|
|

11.06.2010, 00:13
|
|
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме: 991929
Репутация:
395
|
|
рихтера почитай... хотя...
вообще при создании потока функции потока можно передать указатель переменную например в твоем случае целое число.
2 нафига его перезапускать сделай бесконечный цикл
а нужность не нужность зафигачь через event-ы
если не хочешь заморачиваться сделай массив числовой типа fEnable[10];
и в функции протока проверяй в цикле бесконечном if(fEnable[id]==0) break;
|
|
|

11.06.2010, 00:23
|
|
Новичок
Регистрация: 03.05.2009
Сообщений: 22
Провел на форуме: 38103
Репутация:
0
|
|
Сообщение от M_script_
Если 100 страниц читать лень про различные методы синхронизации, прочитай только о критических секциях, тебе хватит.
Если делфи или билдер, можешь использовать класс TThread с его Synchronize
может поможешь разобраться
начнем
Код:
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;
var params, r, p, responseres : tstringlist; i,a,b:integer; n,s,user,user2:string;
begin
for i:=1 to b do
begin
IdHTTP1.Get('http://'+Form1.Edit1.Text+'/index.php?id='+i);
i:=i+1;
end;
end;
Код:
procedure TForm1.Button2Click(Sender: TObject); begin TNewThread.Create(false); end;
что то вроде так...
и как его синхронизоватьь....
|
|
|

11.06.2010, 00:30
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме: 1819761
Репутация:
180
|
|
Во-первых, нужно создавать объект TIdHTTP в потоке, а не кидать на форму, иначе смысла в многопоточности нет.
Во-вторых - гугл.ком -> "делфи Synchronize"
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|