powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / синхронизация потоков
25 сообщений из 25, страница 1 из 1
синхронизация потоков
    #40101133
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть основная прога, и несколько потоков.
в основной проге куча таймеров, событий, обработок и всяко.
если я запускаю доп потоки, то они, получается, делят общее процессорное время. и тогда основная прога начинает конкретно тормозить.
как их сбалансировать?
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101135
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73если я запускаю доп потоки, то они, получается, делят общее процессорное время.
и тогда основная прога начинает конкретно тормозить.

Нет, само по себе так не происходит. Что-то ты должен был сделать реально
неправильно для такого эффекта.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101137
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
как их сбалансировать?
Забей, пусть работают в поте лица, винда сама сбалансирует всё.
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101138
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mizer73
как их сбалансировать?

Ядер + быстрой памяти побольше.
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101140
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mizer73
есть основная прога, и несколько потоков.
в основной проге куча таймеров, событий, обработок и всяко.
если я запускаю доп потоки, то они, получается, делят общее процессорное время. и тогда основная прога начинает конкретно тормозить.
как их сбалансировать?

Вообще-то занять процессор так сильно весьма сложно. А основная прога может тормозить и из-за неправильной реализации доппотоков.
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101199
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
как их сбалансировать?

Убрать вызов synchronize?
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101237
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman
synchronize

без этого тоже беда
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101238
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пока поставил приоритеты доп потокам поменьше. стало лучше. поставлю минимальный приоритет. попробую...
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101239
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock
Mizer73
как их сбалансировать?
Забей, пусть работают в поте лица, винда сама сбалансирует всё.

да ни фига она не балансирует. основная прога еле шевелиться, зато по доп птокам все не то, что бы летает - мерцает неуловимо )))
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101240
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov
Mizer73если я запускаю доп потоки, то они, получается, делят общее процессорное время.
и тогда основная прога начинает конкретно тормозить.

Нет, само по себе так не происходит. Что-то ты должен был сделать реально
неправильно для такого эффекта.
для того и обратился к потокам, что бы некоторые вещи работали независимо шустро от остальных вещей.
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101246
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
основная прога еле шевелиться,
Код потоков мы увидим?
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101268
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
Dimitry Sibiryakov
пропущено...

Нет, само по себе так не происходит. Что-то ты должен был сделать реально
неправильно для такого эффекта.

для того и обратился к потокам, что бы некоторые вещи работали независимо шустро от остальных вещей.


Попробуйте изучить матчасть "Как правильно работать с потоками". Например здесь .
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101336
zedxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mizer73
wadman
synchronize

без этого тоже беда

Как много работы выполняется внутри этого блока?
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101344
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
wadman
synchronize

без этого тоже беда
Беда в смысле медленно или какая-то другая беда?
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101358
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
основная прога еле шевелиться
Проблема в ней
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101474
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_
Mizer73
основная прога еле шевелиться,
Код потоков мы увидим?


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
#include "ArdoThread.h"
ArdoThread *ardor;

ardor = new ArdoThread(false);
ardor->FreeOnTerminate = true;


ardor = new ArdoThread(false);
ardor->FreeOnTerminate = true;
SetThreadPriority(ardor, THREAD_PRIORITY_NORMAL);


__fastcall ArdoThread::ArdoThread(bool CreateSuspended)
	: TThread(CreateSuspended)
{
}
//---------------------------------------------------------------------------
void __fastcall ArdoThread::Execute()
{
	pingdt1 = Now() + Seca(25);
	pingdt2 = Now() + Seca(25);
	int met = 1;
	try
	{
		int y = 0;
		double sc = Now();
		Sleep(200);
		double sy = Now();
		Sleep(300);
		double lo = Now();
		while(!Terminated)
		{
// тут ловлю не установление коннекта и перегружаю форму. pingdt1 - фиксация времени получения последнего ответа 
			if ((IPPort->Connected() && pingdt1 - Now() > 0,0104) || (IPPort->Connected() && pingdt2 - Now() > 0,0104)) {
                LiteReset = true;
			}
			Ex_Operator->Label98->Caption = Now();
			if (!Ex_Operator->NoProcess)
			{
				if (sc < Now()) {
					try
					{
						Synchronize(Ping);
					}
					catch (Exception &e)
					{
						AnsiString a = e.ToString();
						MessageBoxA(Ex_Operator->Handle, a.c_str(), "сенд", MB_OK);
					}
					sc = Now() + Seca(1);

				}
				//if (sc < Now())
				{
					try
					{
						String l = Ex_Operator->Ardo1Memo->Lines->Strings[0].Trim();
						if (l.Length() > 0)
							Synchronize(Printing);
						l = Ex_Operator->Ardo2Memo->Lines->Strings[0].Trim();
						if (l.Length() > 0)
							Synchronize(Printing2);

					}
					catch(Exception &e)
					{
						AnsiString a = e.ToString();
						MessageBoxA(Ex_Operator->Handle, a.c_str(), "принтинг", MB_OK);
					}
					//sy = Now() + Seca(0.5);
				}
				if (lo < Now())
				{
					try
					{
						Synchronize(DoLogika);

					}
					catch(Exception &e)
					{
						AnsiString a = e.ToString();
						MessageBoxA(Ex_Operator->Handle, a.c_str(), "логика", MB_OK);
					}
					//sy = Now() + Seca(1);
				}
			}
		}
		//Synchronize(Printing);
	}
	catch(...)
	{

	}
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101475
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zedxxx,

1. пару пингов (отсылкой по 3 байта)
2. 2 процесса отправки команд из стека команд
3. блок распознавания ответов от внешних устройств с записью логов в БД

поставил ему приоритет, чуть ниже обычного. стало дружить.
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101481
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя пинг делается в главном потоке. Всё бессмысленно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101486
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov
У тебя пинг делается в главном потоке. Всё бессмысленно.

почему?
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101487
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73почему?

Потому что всё, что в Syncronize() - выполняется в главном потоке. Я не знаю
зачем ты написал Synchronize(Ping);. Архангельского обчитался, наверное...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101496
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
У тебя пинг делается в главном потоке.
Зато обращение к компонентам форм - в дополнительном.
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101497
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
классическое "я не прошу у вас совета, как сделать правильно, я прошу у вас подсказки, как быстро и легко подправить неправильный код, чтобы он работал как я хочу"
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101508
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

о, спасибо за подсказку.
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101509
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov
Mizer73почему?

Потому что всё, что в Syncronize() - выполняется в главном потоке. Я не знаю
зачем ты написал Synchronize(Ping);. Архангельского обчитался, наверное...

делал предыдущую штуку обмена по компорту, по "учебнику" какому то...
...
Рейтинг: 0 / 0
синхронизация потоков
    #40101510
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vizit0r
классическое "я не прошу у вас совета, как сделать правильно, я прошу у вас подсказки, как быстро и легко подправить неправильный код, чтобы он работал как я хочу"


главное то сообщение написать, вставить свою полушку. а надо оно кому, или не надо ...
форум - это советы как сделать, обсуждение проблем, а не школа для обучения... что не отменяет обучения на основе советов.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / синхронизация потоков
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]