(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
ReSharper - Commercial annual subscription
Microsoft System Center Standard Core Sngl License/Software Assurance Pack OLP 2Licenses NoLevel CoreLic Qualified
IBM DOMINO ENTERPRISE CLIENT ACCESS LICENSE AUTHORIZED USER LICENSE + SW SUBSCRIPTION & SUPPORT 12 MONTHS
Quest Software. TOAD for Oracle Edition
Купить Антивирус Dr.Web Server Security Suite для сервера
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Delphi - проблемы и решения
Мастерская программиста
 
Статьи по теме
 
Новинки каталога 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