|
|
|
Вопрос больше "философский" (внутренее устройство фокса)
|
|||
|---|---|---|---|
|
#18+
Уважаемые господа! Ситуация : 1.В FLL при определнных условиях запускается ряд однотипных потоков. 2.Происходит вызов методов у объектов созданных на основе одного базово класса. Вопрос: 1.Как фокс отработает в данной ситуации, позволит ли выполнится методам различных объектов одновременно или нужно защищать код "дергания" метода в библотеке с помощью объектов синхронизации ? P.S. По идее, объекты в памяти размещены в различном адресном простансве и как я понимаю потокам не придется использовать общий ресурс. Или как-то не так. Тогда как ? Буду признателен за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2003, 18:57 |
|
||
|
Вопрос больше "философский" (внутренее устройство фокса)
|
|||
|---|---|---|---|
|
#18+
Да, упустил из виду. Выполняются методы объектов созданных в Fox"e. Тоесть из внешней библотеки выполняются методы объектов Fox"a. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2003, 19:43 |
|
||
|
Вопрос больше "философский" (внутренее устройство фокса)
|
|||
|---|---|---|---|
|
#18+
Не знаю, как сейчас обстоят дела с литературой по вопросам распределения ресурсов и задач в Windows, но еще в 1993 году мне попалась книга Питера Нортона "Программирование на Borland C++ для Windows". C++ я так и не освоил, но книгу не потерял :) Приведу несколько цитат. 1. "Динамически связи с постоянно распределенными сегментами кодов реализуются не посредством передач обращения, а вместо этого вызывающая программа с вызываемой подпрограммой напрямую связываются" 2. "... постоянно распределнные сегменты кодов всегда интерпретируются как предварительно загруженные сегменты, поэтому они всегда располагаются в оперативной памяти и никогда не перемещаются". 3. "Динамически подключаемые библиотеки имеют свой собственный сегмент данных, который позволяет им хранить глобальные переменные отдельно от областей данных программ, пользующихся подпрограммами их этих библиотек". 4. "Когда вы для создания окна обращаетесь к CreateWindow вы передаете дескриптор экземпляра, определяющий сегмент данных, который следует связать с окном" и т.д. и т.п. и все это пестрит инструкциями на Assemblere :) Не знаю в тему ли это все, но ясно, что несмотря на всю многозадачность и многопоточность - весь обмен в DLL (FLL) идет под контролем операционки и одного процессора. PS Нам беспокоиться не о чем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2003, 20:04 |
|
||
|
Вопрос больше "философский" (внутренее устройство фокса)
|
|||
|---|---|---|---|
|
#18+
Ясеное дело, кудаж без процесса. Приложение по умолчанию имеет хотя бы один процесс, что впрочем не мешает ему наплодить кучу потоков до исчерпания адресного простанства процесса, а именно 4 гигабайта, 2 из которых отводится под сиситемные нужды, 2 - для приложения. И конечно же о истинной многозадачности на 1 процессорной системе нет разговора, ядро симстемы квантово распредялеяет задачи так (в зависимости от приоритета, что для пользователя абстрактно понимается что это многозадачность),но счас не об этом разговор. Разговор о том как будет вести себя фокс? По первым опытам: 1. все отрабатывается на "ура" при малом объеме кода метода, тоесть когда фокс тратит на выполнение метода N-е количесво времени не более какого-то оговоренного "где-то", причем паралленость выполнения методов наблюдается. 2. Намертво вешается когда в этих методах выполяется API Sleep () (что собственно старнно). Код входа в метод из библиетеки защищен критической секцией. Что мешает ему выполятся сколь угодно долгое время ? Где собака зарыта ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2003, 11:38 |
|
||
|
Вопрос больше "философский" (внутренее устройство фокса)
|
|||
|---|---|---|---|
|
#18+
... Причем это N-е время похоже зависит также от быстродействия системы. У меня был печальный опыт с некоторыми API-шными функциями, например с _keyboard (не помню точно имя) с помощью которой я пытался иммитировать клавишу PrtScr - так и не удалось определить продолжительность паузы :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2003, 12:03 |
|
||
|
|

start [/forum/moderation_log.php?user_name=Alexsey]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 398ms |
| total: | 661ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...