Многопоточность в Delphi

Тема в разделе "ASM, С/С++, Delphi, Java", создана пользователем NoName013, 29 дек 2013.

  1. NoName013

    NoName013 Постоялец

    Регистр.:
    10 ноя 2013
    Сообщения:
    80
    Симпатии:
    18
    Не подскажите какой либо литературы, где хорошо описана реализация многопоточности, а именно взаимодействие между потоками.
    Почему-то постоянно пишут только о реализации критических секций, как будто других способов не существует. Теоретической информации о том, как реализованы мьютексы, семафоры, системные события, IOCP и как с ними работать средствами делфи сложно найти.
    Информацию желательно (но не обязательно) на русском языке.
    Заранее спасибо.

    ps: интересует именно теоретический материал, а не примеры с кодом.
     
  2. gothmog

    gothmog Постоялец

    Регистр.:
    18 июн 2011
    Сообщения:
    60
    Симпатии:
    24
    Потому что надо читать литературу не по дельфи, где люди ничего кроме VCL не могут освоить, а по программированию под Windows в целом, книги по WinApi. Советую классику, Джеффри Рихтера "Windows via C/C++". Там много теории, и примеры кода (на С, но на дельфи переделать несложно, винапи то одинаковое везде).
     
    latteo и NoName013 нравится это.
  3. gothmog

    gothmog Постоялец

    Регистр.:
    18 июн 2011
    Сообщения:
    60
    Симпатии:
    24
    Если хотите профессионально программировать под Windows, вам придется изучить Си, хотя бы на уровне чтения исходников. Конечно, WinApi везде одинаковый, его можно вызывать хоть с дельфи, хоть с чего угодно. Но изначально дельфи создавали для другой цели, в основном для визуального программирования, а не низкоуровневого.
    p.s. после Рихтера еще советую посмотреть Дж. Харт, "системное программирование в среде windows", там очень много именно про многопоточность, сравнение скорости того или иного метода и так далее. Но сама книга сложная для понимания, требует базы.
     
    latteo и NoName013 нравится это.
  4. tempow

    tempow Создатель

    Регистр.:
    17 сен 2013
    Сообщения:
    18
    Симпатии:
    5
    Для понимания сути многопоточности в Delphi рекомендую прочитать про библиотеку OmniThreadLibrary:
    http://habrahabr.ru/post/144681/
     
    NoName013 нравится это.
  5. tanuchka

    tanuchka Создатель

    Регистр.:
    8 мар 2014
    Сообщения:
    19
    Симпатии:
    0
    Например, тут: Алексей Архангельский - Delphi. Справочное пособие. Язык Delphi, классы, функции Win32 и .NET
    Д. Осипов - Delphi. Программирование для Windows, OS X, iOS и Android
     
  6. tanuchka

    tanuchka Создатель

    Регистр.:
    8 мар 2014
    Сообщения:
    19
    Симпатии:
    0
  7. HELMOS

    HELMOS Писатель

    Регистр.:
    9 мар 2012
    Сообщения:
    3
    Симпатии:
    0
  8. Ultharas

    Ultharas Создатель

    Регистр.:
    26 сен 2014
    Сообщения:
    27
    Симпатии:
    10
    Есть те кто пробовал многопоточность и на Delphi и на питоне? юзаю ее на питоне. GIL, конечно, парит - на делфи подобные траблы?
     
  9. vinitek

    vinitek Создатель

    Регистр.:
    22 дек 2015
    Сообщения:
    37
    Симпатии:
    0
    Нормально работает просто описываешь клас
    TNewThread = class(TThread)
    private
    { Private declarations }
    protected
    procedure Execute; override;
    end;
    делаешь procedure TNewThread.Execute; где сам поток
    и вызов потока
    NewThread:=TNewThread.Create(true);
    NewThread.FreeOnTerminate:=true;
    NewThread.Priority:=tpLower;
    NewThread.Resume;
    ну и пауза и остановка
    NewThread.suspend; NewThread.Resume;
    NewThread.DoTerminate;
     
  10. Volukrem

    Volukrem Создатель

    Регистр.:
    8 мар 2016
    Сообщения:
    46
    Симпатии:
    5
    Могу подсказать как сделать многопоточность в двух вариантах на c++builder