(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 

Конференция "Micro Focus/Borland"

Обсуждение вопросов, связанных с компанией Micro Focus/Borland, ее продуктами CaliberRM, CaliberRDM, SilkTest, StarTeam, TeamDefine, Together и других.

 
 
Добавить сообщение »

Тема: Обсуждение материала "Потоки и методы их синхронизаций в Delphi"

Статья дает понятие о процессах, потоках и принципах программирования многопоточных приложений в delphi.

Автор:  SnugForce Дата: 11.03.2011 14:12
Neiro
=) ага, но все равно приятно что читают и вчитываются )
Ответить на сообщение »
 
Автор:  Виктор Дата: 02.09.2010 17:58
SnugForce пишет 03.10.2007 00:18:
>Вы автора забыли указать. Не нарушайте закон об авторском праве.

Да вроде бы указано - Николай Смолин...
Ответить на сообщение »
 
Автор:  Neiro Дата: 22.07.2010 01:29
Ох.... ну и ну..... Отвратительно написаная статья, хотя.... автор как бы подталкивает людей на поиск и исправление ошибок в приведенных примерах. Пожалуй внису и я свою лепту, начнем с самого начала: Первые 6 параграфов пропускаю - бред сивой кобылы.....

>> бесконечный цикл обработки чего-либо, то поток будет загружать систему под завязку. Чтобы избежать этого вставляйте функцию sleep(n) - прям ТАК вот и нужно делать!!!!!

>>Но тут всплывает интересная вещь: что будет, если два потока обращаются к одним и тем же данным по записи? - ничего не понял (по какой записи????)... ну да ладно.....

>>Специально для этого в ОС реализованы механизмы синхронизаций. В частности, в классе tthread есть метод позволяющий избежать параллельного доступа к vcl-компонентам - Это реализуется не на уровне ОС а в самом VCl

>> в котором метод addstr добавляет в memo несколько строчек. Если мы просто вызовем метод, то строчки от потоков будут добавятся в произвольном порядке. Если addstr вызовем методом synchronize, то строчки добавятся сначала от одного потока, а затем от второго. Получается, что поток монопольно захватывает ресурс memo и добавляет в него необходимую информацию, после добавления поток освобождает memo и вот теперь уже другой поток может добавлять в memo свои данные. - прям сердце кровью обливается, synchronize - останавливает поток его вызвавший и передает управление в VCL ни о каком захвате и темболее разграничении ресурса речи быть не может.... УЧИТЕ МАТ. ЧАСТЬ!!!

>>var
section: tcriticalsection; // глобальная переменная
begin
section.create;
end;

наверное всетаки section:=tcriticalsection.create

>>
procedure tnew.execute;
var
i: integer;
n: integer;
begin
for i := 1 to 10 do
begin
// Вход в критическую секцию
cs.enter;
// Код, выполнение которого параллельно запрещено
n := length(mas);
form1.memo1.lines.add(inttostr(mas[n-1]));//<- сами же писали о методе synchronize??????
sleep(5);
setlength(mas,n+1);
mas[n] := mas[n-1]+1;
// Выход из критической секции
cs.leave;
end;
end;

И тд и тп...
устал, автор переработайте статью и выложите нормальный читабельный вариант, как только модераторы пропустили.....
С уважением Neiro.
Ответить на сообщение »
 
Автор:  SnugForce Дата: 03.10.2007 00:18
Вы автора забыли указать. Не нарушайте закон об авторском праве.
Ответить на сообщение »
 

Добавить сообщение »

 Распечатать »
 Правила публикации »
   
 Рекомендовать »  
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Nero Platinum 2018 VL 5 - 9 License corporate
Антивирус ESET NOD32 SMALL Business Pack newsale for 10 user. Электронный ключ.
Symantec Endpoint Protection Small Business Edition, Initial Hybrid Subscription License with Support, 1-24 Devices 1 YR
Купить CommView for WiFi 1 лицензия
ReSharper - Commercial annual subscription
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Вопросы и ответы по MS SQL Server
Мир OLAP и Business Intelligence: новости, статьи, обзоры
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Как мигрировать программу написанную на старом Буилдер 4.52 (1)
Мы поддерживаем старое приложение написанное с использованием С++ Буилдер 5.5 (ЕХЕ) и Буилдер...
 
Создание базы данных в Delphi, без сторонних БД (1)
Уважаемый автор, гуглю уже который день и у Вас как у всех "кидаем.." "даже не создаем проект"...
 
C++ Builder6 & Excel (11)
Доброе время суток! Пишу приложение в C++ Builder6 для формирования файлов Excel. Требуется...
 
Принцип создания плагинов в Delphi (3)
Достали, Эта статья не о плагинах а о подключении dll и возможности использования ресурсов в...
 
QuickREport (40)
Есть приложение скомпилированное в Delphi6. Для построения отчетов я использовал компонеты из...
 
 
 



    
rambler's top100 Rambler's Top100