C ++ 11 одновременно запись программирования

  Некоторые люди могут подумать, и начал атаку с многопоточности и комплекса, но и сделать код множество проблем, но на самом деле это мощный инструмент, который позволяет программе в полной мере использовать аппаратные ресурсы, так что программы работают быстрее ,

Что осложняется:

  Два или более самостоятельные действия должны происходить одновременно. Компьютер представляет собой единую систему одновременно выполнять несколько независимых задач, выполнив эту задачу на некоторое время, а затем переключиться на другую задачу, чтобы сделать какое-то время, что позволяет появляется задача будет выполняться параллельно. Переключение переключение контекста осуществляется, будет стоимость времени, сохранение операционной системы CPU в настоящее время работает состояние задачи и указатель, где вы хотите переключиться вычислить задачу и задачу на предстоящий переключатель для перезагрузки состояние процессора.

Параллельный путь:

  Параллельная многопоточная многозадачность

  Более сложный процесс:

  Точно то же самое время, запустить веб-браузер, QQ, слово этого путь принадлежит к более сложному процессу. Между процессы общаются через трубу, розетки, файлы и другие средства.

  Многопоточность:

  Запуск нескольких потоков в одном процессе. Все потоки в процессе общего адресного пространства.

Почему Параллелизм:

  1: Разделение концернов

  2: Повышение производительности

Если не использовать Параллельное:

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

Простой пример параллелизма:

Hello.cpp // 
#include <iostream> #include <Thread> // поддержка многопоточности заголовок с использованием имен STD; аннулируются thread_func () // ребенок функция входа нити { COUT << " Hello Thread " << епсИ; } ИНТ основная () { нить my_job (thread_func); my_job.join (); // основной поток как дочерний поток закончена перед продолжением COUT << " Hello главные " << епсИ; вернуть 0 ; }
# CMakeLists.txt 
cmake_minimum_required (версия 3.5 . 1 )
 набор (CMAKE_CXX_FLAGS " $ {} CMAKE_CXX_FLAGS -std = C ++ 11 -march = родной -O3 -pthread " ) 
проекта (thread_test) 
add_executable (thread_test1 hello.cpp)

 

рекомендация

отwww.cnblogs.com/418ks/p/11570363.html