Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.17;
Скачать: CL | DM;

Вниз

Потоки   Найти похожие ветки 

 
Сатир   (2002-05-10 17:59) [0]

Кто знает, какая существенная разница между классом TThread и классом TStream?


 
McSimm ©   (2002-05-10 18:26) [1]

Проще сказать что между ними общего :)

Ничего. За исключением предка TObject и ошибочной терминологической путаницы слова "поток".


 
Сатир   (2002-05-10 19:36) [2]

да... что-то скудно у нас на счёт сравнения этих классов:-)
Вот мне пришла в голову идея, что класс TThread используется для создания так называемой многозадачности, то есть представляет интерфейс для создания нескольких потоков , в которых буду выполнятся программируемые задачи, а класс TStream используется в основном для системных нужд, то есть TFileStream, TMemoryStream и т. д..
Но меня интересует, может кто знает, какая разница в принципе работы этих двух классов, скажем так, на процессорном уровне.
Только не надо меня отсылать к исходникам, я уже там был:-)


 
Anatoly Podgoretsky ©   (2002-05-10 19:44) [3]

А чем разница между часами и калькулятором? И то и то считает.


 
McSimm ©   (2002-05-10 20:17) [4]

Предлагаю также обсудить какая существенная разницу между Label (которая для goto используется) и TLabel
Наверно главное отличие в том, что label используется для реализации так называемых безусловных переходов, а TLabel используется в основном для графических нужд.

:)

Этой ветке явно пора в "Потрепаться" :-)


 
Сатир   (2002-05-11 14:29) [5]

2McSimm
> За исключением предка TObject и ошибочной терминологической
> путаницы слова "поток".
И в чём же заключается ошибочная терминология слова "поток"?


 
McSimm ©   (2002-05-11 14:39) [6]

Путаница заключается в том, что разные английские термины Thread и Stream почему-то принято называть одним русским - "поток". Термин "нить" хоть и имеет хождение, но не прижился.

TThread используется для реализации дополнительного вычислительного потока ( я тоже привык к этому термину ) в приложении
TStream - базовый класс для классов, реализующих операции чтения/записи потоков данных (в/из памяти, файлов etc)


 
Сатир   (2002-05-11 15:00) [7]

Как я и полагал. А как на счет реализации на процесорном уровне?
Как там дела обстоят?


 
Anatoly Podgoretsky ©   (2002-05-11 15:16) [8]

Процессорный уровень ничего выше не знает


 
Cobalt ©   (2002-05-11 15:30) [9]

Что ты понимаешь под
> процесорным уровнем?



 
drpass ©   (2002-05-11 16:36) [10]

На процессорном уровне и тот, и другой класс преставлен в виде набора инструкций x86. Уже ведь десять раз сказали, что между этими классами ничего общего нет!


 
Сатир   (2002-05-11 17:55) [11]

2drpass
OK. А на счет инструкций поподробней можно?
У какого класса больший приоритет?
Можно ли запрограмировать свой экземляр класс TThread, который будет эмулировать определённого наследника класса TStream, напр., TMemoryStream? И не будет ли он ругаться с настоящим классом (т. е. , с оригиналом)?


 
McSimm ©   (2002-05-11 18:01) [12]

нет слов


 
MBo ©   (2002-05-11 18:05) [13]

издевается


 
Cobalt ©   (2002-05-11 18:14) [14]

Аааааааааа.....
Ну, если на уровне инструкций, то они абсолютно не совместимы - исходный код то у них разный, ну, соответственно и машинный тоже. Это как одна повесть отличается от другой на уровне букв. Или, наоборот, совершенно одинаковы - используют то они одни и те же инструкции. Правда, в разном порядке;)

Насчет приоритетов. Приоритеты имеют только Потоки КОДА (в Вин32 АПИ). А потомки TThread могут только задавать функцию входа в новый поток и устанавливать его приоритет по сравнению с другими потоками этого процесса (в том числе и т.с. "основного", т.е который запускается первым и в котором работает VCL)


> Можно ли запрограмировать свой экземляр класс TThread, который
> будет эмулировать определённого наследника класса TStream,
> напр., TMemoryStream? И не будет ли он ругаться с настоящим
> классом (т. е. , с оригиналом)?

Лучше почитай книжку по ТурбоПаскалю/Дельфи, раздел ООП.
Там есть примеры и подробно разжевано.


 
Сатир   (2002-05-11 18:42) [15]

2Cobalt
а какую книжку читать лучше? мой Турбо пас уже сильно потрепался, а по делфям в руках держал книжек пять:-)


 
Сатир   (2002-05-11 18:44) [16]

2McSimm
а чё так слабо?
2Mbo
и совсем даже и не издеваюсь
надо же как-то народ растормошить:-)


 
drpass ©   (2002-05-11 18:49) [17]

>Сатир
Сегодня ведь не первое апреля, так?
1. Больший приоритет у класса TThread, т.к. приоритет его выполнения задается произвольно с помощью функции SetThreadPriority, в то время, как TStream вынужден довольствоваться приоритетом того потока, из-под которого выполняются его методы :)
2. Можно. Не взирая на отсутствие в Объектном Паскале множественного наследования, вполне допускается использовать агрегирование для порождения объектов, обладающих функциональностью нескольких классов, например, TThread и TMemoryStream. Или даже TThread и TLabel.


 
kaif ©   (2002-05-11 18:52) [18]

Меня не покидает чувство, что вопрос очень странный...


 
Cobalt ©   (2002-05-11 18:55) [19]


> допускается использовать агрегирование для порождения объектов,
> обладающих функциональностью нескольких классов

Это как?

> Сатир (11.05.02 18:44)

У меня был Фаронов, ТП 7.0
А насчет эмуляции... Используйте каждый класс по назначению. Вы ведь не будете варить суп на сковородке, или, точнее, в кофемолке?


 
Сатир   (2002-05-11 19:15) [20]

2kaif
это хорошо, что оно тебя не покидает
Будет тогда больше шансов расспросить тебя, что ты об этом думаешь:-)

2Cobalt
нестандартные задачи требуют нестандартные решения, а некоторые нестандартные ситуации требуют таких жертв как кофемолка.
Если нет каструли, не будешь же отказываться от супа

2drpass
а чё, высаживает на измену мой ник? Сегодня 11 мая:-)


 
drpass ©   (2002-05-11 19:43) [21]

>Сатир
Да нет. Ник, как ник. Ничего себе, обычный ник. А вот вопросик-то растаманский.
>Cobalt
Это страшное слово сводится к простейшей вещи - объявить в одном классе член данных, являющийся экземпляром другого класса.


 
Malder ©   (2002-05-12 00:37) [22]

Сатир, знаешь, глядя на твой вопрос, а особенно на дополнительные вопросы, мне вспомнилась одна примечательная личность из этого форума... у тeбя раньшe другого ника не было ?


 
Сатир   (2002-05-13 17:54) [23]

2Malder
И чем же та личность была примечательной? Может мне удастся хоть немного отличиться от данного стереотипа:-)


 
Cobalt ©   (2002-05-13 23:23) [24]

2 Сатир (11.05.02 19:15)
>Если нет каструли, не будешь же отказываться от супа
Ну, возьмем другой пример, скажем, по учебнику астрономии не приготовить блюда. А если можно, то это уже не учебник по астрономии ;))


 
McSimm ©   (2002-05-14 10:38) [25]

to Сатир
Не мог бы ты рассказать предысторию возникновения этой темы. Очень интересно какие нестандартные задачи завели тебя в эти дебри.
Если это не просто абстрактные размышления, а практика, то попробуем найти решение. Если же это просто размышления, то учти, что они бессмыслены. Совсем. И пользы от них не будет. (Я так и не избавился от ощущения что ты просто прикалываешься)


 
Сатир   (2002-05-14 14:08) [26]

2McSimm
см. название раздела форума - "Потрепаться":-)



Страницы: 1 вся ветка

Текущий архив: 2002.06.17;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.016 c
4-55376
Adolph
2002-04-11 22:42
2002.06.17
Убить процесс в W98


1-55095
PTE
2002-06-05 17:33
2002.06.17
Что я с формой сделал то?


14-55292
evgeg
2002-05-10 19:27
2002.06.17
---|Ветка была без названия|---


3-55017
Explorer
2002-05-23 15:08
2002.06.17
Ошибка при работе с Query


14-55260
Подонок
2002-05-13 14:28
2002.06.17
Можно ли узнать смотрят ли твой компьютер сейчас черз RemoteAdmin