|
|
|
Много поточность!
|
|||
|---|---|---|---|
|
#18+
maytonТоесть утверждаете, что это - суть разные вещи.угу, вот прогаммерам на жаве сызмальства втирают, что потоки на солярке реализованы как нити. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2006, 11:10 |
|
||
|
Много поточность!
|
|||
|---|---|---|---|
|
#18+
mayton maXmoпроцессы делаются для изоляции задач в виртульной памяти, потоки - для шедулинга процессорного времени, нити - для шедулинга лапками. А в линухе как? Минутку... минутку... вы разделяете термины поток (thread) и нить (? thread ?). Тоесть утверждаете, что это - суть разные вещи. До этого времени я так не считал. Давайте определимся, что есть что во избежание кривотолков. С уважением Mayton волокна имеются в виду. есть в винде такое, многопоточность а-ля Win16 в рамках одного потока ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2006, 11:23 |
|
||
|
Много поточность!
|
|||
|---|---|---|---|
|
#18+
фибры примечательны тем, что между ними можно переключаться, скажем, раз в секунду, а не раз в миллисекунду или как там ось потоки переключает... Кстати, миллисекунда - это сколько миллионов тактов? А вы 6-10... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2006, 11:29 |
|
||
|
Много поточность!
|
|||
|---|---|---|---|
|
#18+
maXmoфибры примечательны тем, что между ними можно переключаться, скажем, раз в секунду, а не раз в миллисекунду или как там ось потоки переключает... Кстати, миллисекунда - это сколько миллионов тактов? А вы 6-10... Тут дело немного в другом. Насколько я понимаю если поток уходит в системый вызов который быстро обработать невозможно (например ожидание ответа от DMA), то ОС прекращает контекст нити и отдает процесср другой, готовой к выполнению. А системный вызов может произойти и на 10 такте контекста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2006, 11:55 |
|
||
|
Много поточность!
|
|||
|---|---|---|---|
|
#18+
ну... это уже совсем другие яйца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2006, 13:00 |
|
||
|
Много поточность!
|
|||
|---|---|---|---|
|
#18+
это поток сам себя прерывает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2006, 13:01 |
|
||
|
Много поточность!
|
|||
|---|---|---|---|
|
#18+
maXmoэто поток сам себя прерывает Если это невытесняющая многозадачность, то сам. Если вытесняющая то его должна прерывать ОС. Основная масса современных ОС имеют вытесняющую многозадачность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2006, 13:15 |
|
||
|
Много поточность!
|
|||
|---|---|---|---|
|
#18+
onstat- maXmoэто поток сам себя прерывает Если это невытесняющая многозадачность, то сам. Если вытесняющая то его должна прерывать ОС. Основная масса современных ОС имеют вытесняющую многозадачность. хм! ето то понятно вопрос то в другом как лутше сделать что бы работало быстрей. Как отыскать грань количества потоков которые можно создать. Ведь мало потоков создаш проц будет простаивать, создаш много проц будет не спровлятся. Может кто писал много поточные программы? Поделитесь какие трудности возникают что бы сразу же их постораться обойти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2006, 06:31 |
|
||
|
Много поточность!
|
|||
|---|---|---|---|
|
#18+
Еще раз: если основное время занимают вычисления, количество потоков должно быть равно количеству логических процессоров (с учетом моногоядерности, гипертрединга). Если ввод данных - вывод результатов требует заметного времени, потоков можно создавать больше - пока один ждет завершения ввода-вывода, другой считает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2006, 09:31 |
|
||
|
Много поточность!
|
|||
|---|---|---|---|
|
#18+
mikola1982Может кто писал много поточные программы? Поделитесь какие трудности возникают что бы сразу же их постораться обойти. Не безбашенное количество потоков - дело не страшное. Ведь в системе и без ваших потоков их достаточное количество, и все же ваша программа выполняется. Тем более, если рассудить, если количество ваших потоков будет расти, то процессор будет чаще переключаться на ваши задачи. Наибольшая трудность - это найти грань между количеством времени, которое давать потоку для idle, и скоростью с которой он должен обрабатываеть данные. Дашь, много idle - другие будут чаще работать, но он будет дольше передовать данные, мало - наоборот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2006, 10:05 |
|
||
|
Много поточность!
|
|||
|---|---|---|---|
|
#18+
BarloneЕще раз: если основное время занимают вычисления, количество потоков должно быть равно количеству логических процессоров (с учетом моногоядерности, гипертрединга). Если ввод данных - вывод результатов требует заметного времени, потоков можно создавать больше - пока один ждет завершения ввода-вывода, другой считает. Я думаю немного по другому. Вычислять нужно в одних потоках, а операции ВВ и другие потенчциально тормозные прыжки на уровень ядра выносить в другие. Чтобы контекксты потоков которые занимаются вычеслением не прерывались до истечения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2006, 10:06 |
|
||
|
Много поточность!
|
|||
|---|---|---|---|
|
#18+
И еще. Сейчас некоторые классы организую следующим образом. Поток в цикле вызывает некоторую функцию, которая выполняет логику потока. Это функция находится в public. Так вот, программа, использующая этот класс может сама решать, должен ли класс создавать поток. Если она будет считать, что класс может работать и в контексте потока самой программы, то, например, в конструкторе класса, она скажет, что поток создавать не надо, а сама будет дергать эту функцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2006, 10:09 |
|
||
|
Много поточность!
|
|||
|---|---|---|---|
|
#18+
onstat-Я думаю немного по другому. Вычислять нужно в одних потоках, а операции ВВ и другие потенчциально тормозные прыжки на уровень ядра выносить в другие. Чтобы контекксты потоков которые занимаются вычеслением не прерывались до истечения.По разному может быть. Если вычисления по типу "прочитали - долго считаем - записали" (долго - значит на рассчеты уходит времени больше, чем на ввод-вывод), то наверное нет смысла. Если рассчеты короткие, может быть. Но если данные для вычислений еще не готовы (другой поток еще не успел прочитать), всё равно вычислительный поток должен встать - и еще надо эту синхронизацию организовывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2006, 10:21 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2029982]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
12ms |
get first new msg: |
5ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 382ms |

| 0 / 0 |
