На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
  
    > В сколько потоков лучше писать программы?, многопоточное программирование
      Программы, работающие в один-два потока, годятся разве что для учебных целей на начальном этапе.
      Я обычно пишу в 8 потоков, чтобы в полной мере использовать 8 ядер, если они будут у юзера, а больше ядер пока экзотика.
      Мне кажется что такое число потоков оптимально для большинства приложений.
      Прав ли я?
        Цитата
        Прав ли я?

        Нет, Потоки не отвечают за распределение по ядрам. Поток - асинхронность выполнения, не более того.
        Там учавствует другой механизм. (и да, распределение тратит ресурсы CPU, иногда, одноядерная архитектура выполняет задачу быстрее 4 ядерной)

        Могу ошибаться, поправьте, если что.
        Сообщение отредактировано: VisualProg -
        CyberLock | BloodBath-LAN
        Немного творчества - альбом ArtMetal [Metal, Instrumental, Orchestral]
          Цитата Клещ @
          Мне кажется что такое число потоков оптимально для большинства приложений.
          Прав ли я?

          Нет. ЗЫ: какой вопрос - такой ответ.

          Добавлено
          Цитата VisualProg @
          Нет, Потоки не отвечают за распределение по ядрам.

          Фраза лишена смысла. Поток - есть контекст выполнения, на каком ядре крутить какой поток(и) решает шедуллер ОС. Один поток не может параллельно работать на нескольких ядрах в силу очевидных причин.
          Цитата TheMachine @
          т.е. в общем случае вы правы конечно, а мне надо спать больше а пить меньше
            Цитата
            Фраза лишена смысла

            :ph34r:

            Цитата
            Поток - есть контекст выполнения, на каком ядре крутить какой поток(и) решает шедуллер ОС

            Вот, кто именно отвечает за распределение я и не знал

            Цитата
            Один поток не может параллельно работать на нескольких ядрах в силу очевидных причин.

            Но ведь 8 потоков могут спокойно крутиться на 1 ядре (7 оставшихся - простаиваются)?
            Сообщение отредактировано: VisualProg -
            CyberLock | BloodBath-LAN
            Немного творчества - альбом ArtMetal [Metal, Instrumental, Orchestral]
              Цитата VisualProg @
              Но ведь 8 потоков могут спокойно крутиться на 1 ядре (7 оставшихся - простаиваются)?

              Могут. Более того, в силу различных причин это может произойти и на многоядерной машине. Ну например из-за ожидания объектов синхронизации. Не стоит забывать, что далеко не все алгоритмы можно распараллелить, а некоторые если и можно, то выгода от этого может оказаться отрицательной. Это коммент к вопросу ТС.
              Сообщение отредактировано: shm -
              Цитата TheMachine @
              т.е. в общем случае вы правы конечно, а мне надо спать больше а пить меньше
                Цитата Клещ @
                Программы, работающие в один-два потока, годятся разве что для учебных целей на начальном этапе.

                Даже в наше время чаще встречается однопоточное приложение. Как уже сказали выше - многопоточность не доказательство большей производительности.

                Цитата Клещ @
                Я обычно пишу в 8 потоков, чтобы в полной мере использовать 8 ядер, если они будут у юзера, а больше ядер пока экзотика.
                Мне кажется что такое число потоков оптимально для большинства приложений.

                Более правильно количество потоков = (количество ядер)х2
                В таком подходе меньше потери на синхронизацию потоков (если хорошо распараллелин алгоритм)

                Более подробно можно почитать у Рихтера.
                select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
                  Мне кажется, в данном случае господин Клещ прикалывается. Было бы у него 16 ядер - написал 16 потоков
                    Цитата Клещ @
                    Я обычно пишу в 8 потоков, чтобы в полной мере использовать 8 ядер, если они будут у юзера, а больше ядер пока экзотика.
                    Мне кажется что такое число потоков оптимально для большинства приложений.
                    Прав ли я?
                    Да, вполне. Я уже лет 5 пишу, разбивая на 16 потоков, и вижу что старые программы и на новых машинах весьма хорошо распределяются на имеющиеся ядра. Так что делайте как ViktorXP подсказал :
                    Цитата ViktorXP @
                    Более правильно количество потоков = (количество ядер)х2
                    или даже больше. А то вот недавно новые ARM'ы вышли с 32 ядрами... ;)
                      Использую корутины и мои волосы стали мягкие и шелковистыене парюсь о количестве ядер.

                      P.S. Автор просто тролль.
                      Сообщение отредактировано: korvin -
                      “Object-oriented design is the roman numerals of computing.” — Rob Pike
                      All software sucks
                        Это просто волшебная формулировка вопроса :wub:
                        У нас кстати есть раздел смехогрех
                          Цитата
                          Нет, Потоки не отвечают за распределение по ядрам.


                          И да и нет. По дефолту - нет, но как минимум в винде есть возможность каждому потоку задать
                          произвольный набор "процессоров" (соответствующих физическим ядрам), на которых
                          этот поток будет выполняться - Thread affinity mask
                          SetThreadAffinityMask
                          Сообщение отредактировано: reinterpret_alexey -
                            Цитата
                            По дефолту - нет, но как минимум в винде есть возможность каждому потоку задать
                            произвольный набор "процессоров"

                            Для процесса тоже есть SetProcessAffinityMask.
                            "Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
                            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                            0 пользователей:


                            Рейтинг@Mail.ru
                            [ Script Execution time: 0,1164 ]   [ 14 queries used ]   [ Generated: 23.09.19, 20:24 GMT ]