Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 выполнение кода в трубе (SyncObjs)  [new]
Pcrepair
Member

Откуда:
Сообщений: 675
Добрый день и с Новым Годом.
есть кода типа

  CS.Enter;
  try
    gFlgClsMAIN:=FALSE;
    gIsTaskStarted:=TRUE;
    gAutoCtrl:=TRUE;
  finally
    CS.Leave;
  end;


где идет передача значений от ГлобПерем в локальные и наоборот
и все работает без вопросов

но можно ли в трубе(CS) выполнять различный код, например циклы, арифметические и логические операции
в принципе все работает, во всяком случае не слишком сложный код, но что там теория утверждает, такс сказать корифеи. что то ничего конкретного не накопал(типа ДА или НЕТ)

всем кто ответит по существу вопроса заранее спасибо
1 янв 19, 23:48    [21777453]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3707
Pcrepair,

Чем меньше тормозить потоки - тем лучше.
2 янв 19, 02:30    [21777468]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
Vlad F
Member

Откуда:
Сообщений: 480
Pcrepair,

Можно, это не значит, что нужно. В критических функциях лучше выполнять только по настоящему критические вещи, а не всю программу целиком.))
2 янв 19, 10:04    [21777517]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
Pcrepair
Member

Откуда:
Сообщений: 675
а где реальные корифеи? празднуют? ну ладно.
2 янв 19, 10:26    [21777522]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
krapotkin
Member

Откуда: Екатеринбург
Сообщений: 647
а в чем проблема-то?
кто вам может что-то запретить?
задача КС всего лишь не дать вашим же потокам одновременно делать что-то
если ваша стратегия допускает продолжительные действия одного потока с блокированием остальных, (ваших же!, и только тех, кто смотрит на эту КС) да и ради бога
2 янв 19, 11:11    [21777533]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
Vlad F
Member

Откуда:
Сообщений: 480
Pcrepair
а где реальные корифеи? празднуют? ну ладно.

Корифеи Корифеичи. Орденоносцы и бровеносцы.))
2 янв 19, 13:20    [21777559]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
Vlad F
Member

Откуда:
Сообщений: 480
krapotkin,

Он хочет, имхо, чтобы его отшлепали. Но, непременно, корифеи.))
2 янв 19, 13:26    [21777561]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 46739

Pcrepair
а где реальные корифеи?

Корифейно заявляю: это валидный код. Пеши есчо.

Posted via ActualForum NNTP Server 1.5

2 янв 19, 14:03    [21777571]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 46739

krapotkin
кто вам может что-то запретить?

Никто. Хотя стоило бы. Он же этот код потом на свой сайт вывалит и толпа чайников будет
смотреть и делать так же.

Был ещё один такой пейсатель валидного кода (к счастью уже умер), после которого каждый
первый нуб весь код потока запускал в synchronize() и потом вопрошал на форуме "а чего оно
тормозит, у меня же потоки".

Posted via ActualForum NNTP Server 1.5

2 янв 19, 14:09    [21777575]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3007
пиши, только чем меньше кода в кс, тем более потенциально параллельный код получится.
2 янв 19, 21:18    [21777684]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
Pcrepair
Member

Откуда:
Сообщений: 675
маловато корифеев будет
а где GunSmoker, Anatoly Podgoretsky, defecator, wadman
2 янв 19, 22:53    [21777712]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 46739

Pcrepair
а где GunSmoker, Anatoly Podgoretsky, defecator, wadman

"Иных уж нет, а те далече." (с)

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

Posted via ActualForum NNTP Server 1.5

2 янв 19, 22:59    [21777715]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 59588
Мне больше интересно, даже не что читал копал,
сколько почему CS (критическая секция?) - это "труба".
Видимо, пост писался после/вместо НГшного похмелья.

Posted via ActualForum NNTP Server 1.5

2 янв 19, 23:01    [21777716]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 3773
Pcrepair
Добрый день и с Новым Годом.
есть кода типа

  CS.Enter;
  try
    gFlgClsMAIN:=FALSE;
    gIsTaskStarted:=TRUE;
    gAutoCtrl:=TRUE;
  finally
    CS.Leave;
  end;


где идет передача значений от ГлобПерем в локальные и наоборот
и все работает без вопросов

но можно ли в трубе(CS) выполнять различный код, например циклы, арифметические и логические операции
в принципе все работает, во всяком случае не слишком сложный код, но что там теория утверждает, такс сказать корифеи. что то ничего конкретного не накопал(типа ДА или НЕТ)

всем кто ответит по существу вопроса заранее спасибо
какой-то странный вопрос
с чего вдруг код там нельзя писать? физика процессора меняется? :-)
3 янв 19, 09:18    [21777812]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
Bred eFeM
Member

Откуда:
Сообщений: 520
Pcrepair
но можно ли в трубе(CS) выполнять различный код, например циклы, арифметические и логические операции
Да на здоровье! Только
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\CriticalSectionTimeout 
не забудь подправить.

А, такс сказать корифеи, рекомендуют SRWLock.
3 янв 19, 16:00    [21777921]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1242
Какой смысл в CS уровня ядра, если давно изобрели Spin-локи и штатный TMonitor совмещающий одно со вторым будет кошернее.
3 янв 19, 17:39    [21777960]     Ответить | Цитировать Сообщить модератору
 Re: выполнение кода в трубе (SyncObjs)  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 3773
X-Cite
Какой смысл в CS уровня ядра, если давно изобрели Spin-локи и штатный TMonitor совмещающий одно со вторым будет кошернее.
  • например, искать взаимоблокировки в дампе
  • сам вопрос не совсем правильный, в режим ядра он практически не входит
  • 3 янв 19, 18:31    [21777974]     Ответить | Цитировать Сообщить модератору
     Re: выполнение кода в трубе (SyncObjs)  [new]
    Pcrepair
    Member

    Откуда:
    Сообщений: 675
    как много новых слов

    SRWLock
    Spin-локи и штатный TMonitor совмещающий одно со вторым

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\CriticalSectionTimeout не забудь подправить.
    увеличит или уменьшить?

    кто нибуть знает что все это значит?
    3 янв 19, 20:51    [21778003]     Ответить | Цитировать Сообщить модератору
     Re: выполнение кода в трубе (SyncObjs)  [new]
    Фэйтл Эра
    Member

    Откуда:
    Сообщений: 416
    В топике речь о строении ядра цезия(Cs)?
    3 янв 19, 21:02    [21778007]     Ответить | Цитировать Сообщить модератору
     Re: выполнение кода в трубе (SyncObjs)  [new]
    Vlad F
    Member

    Откуда:
    Сообщений: 480
    Аффтар, имхо, сам виноват, - спутал корифеев и графоманов. Вот их и набежало.))
    3 янв 19, 21:06    [21778008]     Ответить | Цитировать Сообщить модератору
     Re: выполнение кода в трубе (SyncObjs)  [new]
    Гаджимурадов Рустам
    Member

    Откуда:
    Сообщений: 59588
    Из цезия трубы не делают.

    Posted via ActualForum NNTP Server 1.5

    3 янв 19, 21:49    [21778036]     Ответить | Цитировать Сообщить модератору
     Re: выполнение кода в трубе (SyncObjs)  [new]
    Василий 2
    Member

    Откуда:
    Сообщений: 349
    В Контре (CS) с трубой напряжно бегать, супротив пушек-то.
    9 янв 19, 11:31    [21780380]     Ответить | Цитировать Сообщить модератору
    Все форумы / Delphi Ответить