Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
Сатир   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.008 c
1-55063
Fiend
2002-06-05 16:10
2002.06.17
Packages


1-55078
Starkom
2002-06-04 08:29
2002.06.17
Не могу разобраться с выгрузкой Dll


6-55241
novomod
2002-04-07 15:17
2002.06.17
Help.TClientSocket and TServerSocket.


1-55148
Poaokristal
2002-06-04 13:03
2002.06.17
Об использовании .obj файлов в Delphi.


3-55030
VikOs
2002-05-23 14:23
2002.06.17
Перекачка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский