Форум программистов, компьютерный форум CyberForum.ru

Потоки. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Старший бит http://www.cyberforum.ru/cpp-beginners/thread152997.html
Допустим число 4 представляю в двоичной системе счисления получается 0100. В етом двоичном числе старший бит ет 3 бит?
C++ Найти в текстовом файле строки по условию Задача была написать программу. В заданном текстовом файле найти: самую длинную строку. все строки начинающиеся с символа А. все строки, в которых имеется более трех пробелов. Написал) Без проблем, но что-то кажется что я написал говно-код... Параметры написания. Нету волшебных чисел, кроме размера одного буфера. Все через динамические массивы. Сам массив строк двумерный динамический. На... http://www.cyberforum.ru/cpp-beginners/thread152996.html
Новый диалог не слушается C++
такая проблема, добавляю к проекту новый диалог IDD_DIALOG2, на основой вешаю кнопку и для неё обрабочик void CTestDialog::OnButton1() { // TODO: Add your control notification handler code here CDialog dlg(IDD_DIALOG2); dlg.DoModal(); } на второй диалог добавляю какой-нить контрол и.. и ничего, ничего не работает, кроме кнопок ok и cancel, нет я конечно умею кнопки запрограммировать на...
C++ определить достижимость графа
определить достижимость графа(относительно каждой вершины) плизззз кто сможет написать программу на С
C++ Перестановка http://www.cyberforum.ru/cpp-beginners/thread152958.html
Уважаемые профи, я в Си нуб.Каким образом можно реализовать строчную перестановку(все варианты)? То есть вводим LOL, а программа выведет OLL,LLO,LOL. Заранее спасибо
C++ Найти все вершины орграфа, от которых существует путь заданной длины к выделенной вершине Найти все вершины орграфа, от которых существует путь заданной длины к выделенной вершине. подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16821 / 5242 / 318
Регистрация: 30.03.2009
Сообщений: 14,118
Записей в блоге: 26
11.07.2010, 13:11     Потоки.
Чтобы нормально понять, что такое поток, надо хотя бы приблизительно понимать, как устроена работа современных многозадачных систем.

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

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

Зачем это нужно? Допустим, у тебя есть две независимых вычислительных задачи. Самый простой искусственный вариант - есть два больших массива и нужно инкрементировать каждый элемент каждого массива. Эти две вещи можно сделать параллельно, поскольку они являются независимыми. В этом случае можно использовать поток. В основном процессе у тебя пойдёт инкрементация элементов первого массива, а в потоке - инкрементация элементов второго массива. Если на машине установлен один одноядерный процессор, то такой подход выигрыша в скорости не даст. Но если два процессора (или двухядерный процессор), то две жти операции будут исполняться параллельно, а потому, условно можно сказать, что всё это дело исполнится в два раза быстрее
 
Текущее время: 04:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru