Уважаемые только начал изучать потоки ,
хочу задать пару вопросов - правильно ли я понимаю. 1) поток - это код(последовательность команд) в пути от файла породившего его до процесса в памяти. Так? 2) Многопоточность - это параллельное выполнение кода для которого специально разграничены участки которые будут выполняться в потоке ? Например: ... begin Write('Привет'); Write('Пока'); end. Как я понимаю данное приложение породит один поток. Например2: ... begin <Поток1> Write('Привет'); </Поток1> <Поток2> Write('Пока'); </Поток2> end. А этот пример должен породить два параллельных потока !? Так?? <ПотокN> использовано для наглядности схемы. ![]() Подскажите если что не так _________________ Даже когда тебя сожрали у тебя есть два выхода |
Процесс - запущенное приложение.
Поток - исполняющийся код. Когда запускается приложение, т.е. создается процесс, то одновременно создается главный поток. По желанию также можно создавать произвольное количество потоков. Получается такое дерево. Обычные задачи всегда однопоточны. А то, что вы нарисовали, я не понял. _________________ http://asm.shadrinsk.net |
F1 -> Thread - класс
.... Процесс может создавать один или более потоков для выполнения частей программного кода, связанного с процессом. Следует использовать делегат ThreadStart или ParameterizedThreadStart для задания программного кода, управляемого потоком. С помощью делегата ParameterizedThreadStart можно передавать данные в потоковую процедуру. В течение своего существования поток всегда находится в одном или более состояниях, определенных в классе ThreadState. Для потока можно запрашивать планирование уровня приоритета, который определяется классом ThreadPriority, но не гарантируется, что операционная система предоставит его. Метод GetHashCode предоставляет идентификацию управляемых потоков. В течение жизни поток не будет конфликтовать со значениями, полученными от других потоков, независимо от домена приложения, из которой получается значение. Примечание. Идентификационный номер потока (ThreadId) операционной системы не имеет жесткой взаимосвязи с управляемым потоком, так как неуправляемый хост может контролировать взаимосвязь между управляемыми и неуправляемыми потоками. В частности, сложный хост может использовать CLR Hosting API для планирования нескольких управляемых потоков на один поток операционной системы или перемещения управляемых потоков между различными потоками операционной системы. Нет нужды в сохранении ссылки на объект Thread после запуска потока. Поток продолжает выполняться до завершения потоковой процедуры. Примеры В следующем примере кода показаны простейшие функциональные возможности работы с потоками. Язык Visual Basic Копировать код
Язык C# Копировать код
Этот код формирует выходные данные, подобные приведенным ниже: Копировать код [VB, C++, C#]
_________________ Ин дер гросен фамилие нихт клювен клац-клац ![]() |
А на Delphi можно пример?
![]() _________________ Даже когда тебя сожрали у тебя есть два выхода |
смотря с чем ты на дельфи работаешь, там и ищи примеры. или vcl, или winapi, или .net. у борланда неплохой хелп, и примеры были всегда и в хелпе и на диске. _________________ Ин дер гросен фамилие нихт клювен клац-клац ![]() |
Ну, вот Andy Ice все расписал. Только разобраться надо. Если соберусь, то еще на API напишу. Тут главное суть понять, а на чем писать - не важно. |
это не я расписал, а MSDN _________________ Ин дер гросен фамилие нихт клювен клац-клац ![]() |
Почему в делфи в одной литературе пишут поток - TStream в другой TThread это разные вещи? _________________ Даже когда тебя сожрали у тебя есть два выхода |
это разные компоненты. Stream - поток данных (файл или т.п.), Thread - поток выполнения _________________ Ин дер гросен фамилие нихт клювен клац-клац ![]() |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы |