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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
#1

Параллельное исполнение программы - C++

15.06.2013, 00:22. Просмотров 1191. Ответов 28
Метки нет (Все метки)

Здорова господа!
Я от новую задачку делаю, полностью на новую тему, наверно интересную, в общем сразу условие приведу:
Понятия потока, задачи и процесса составляют основные понятия параллельного исполнения программ на вашем компьютере. Разберитесь подробнее в этих механизмах. Для предотвращения одновременного доступа двух задач к одной области памяти применяется блокировка. Реализуйте класс блокировки, опираясь на системный механизм блокировок на вашей машине.

Все новое для меня. Понятие потока? Да хз что это такое. Задачи и процессы тоже хз. Ну что такое блокировка, есть в определении задачи, но что это за класс блокировки и как его реализовать тоже хз.
Не понятная задачка.
Просветите новичка!!!!!!

Добавлено через 1 минуту
Я не знаю с чего ее начинать, то делать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2013, 00:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Параллельное исполнение программы (C++):

ГУИ как посмотреть исполнение программы? - C++
Здорова! Как сделать чтобы было удобно в mfc просматривать что выводится на экран так же как в консольном приложении? Например я каждый раз...

Запуск файла на исполнение - C++
Нужна функция (или кусок кода позволяющий это делать). Проблема такова, необходимо запускать 5-6 программ из програмулены написанной...

Программа не запускается на исполнение - C++
Доброй ночи. Возникла такая проблема: написал программу, должно быть правильно, компилятор никаких ошибок не выдает. Но при запуске...

Повторить исполнение кода - C++
Разработал такой супер-код, подскажите, как сделать, чтобы после последнего "mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); " сделать, чтобы...

Исполнение команды в винде - C++
Кто-нибудь делал екзешник для винды, который запускает исполнение команды: java -jar SomeJarFile.jar Или любой другой. Как это...

Исполнение кода из текстовой переменной. - C++
Есть текстовая переменная. (конкретно массив TCHAR) В ней находится кусок кода. Можно ли отправить этот код на выполнение, не занимаясь...

28
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 12:26  [ТС] #16
Цитата Сообщение от lazybiz Посмотреть сообщение
В условии не написано что использовать.
Значит что знаешь то и используй.
Цитата Сообщение от lazybiz Посмотреть сообщение
Какому шарящему интересно решать задачу для не шарящего?
А не шарящему, интересней? Просто шарящему это не составит труда.
0
XRuZzz
Антикодер
681 / 583 / 29
Регистрация: 15.09.2012
Сообщений: 2,531
15.06.2013, 12:26 #17
Цитата Сообщение от ninja2 Посмотреть сообщение
Да нет под линукс нет.
Тогда сами разбирайтесь (так как Linux самая стандартная ОС в мире )

Цитата Сообщение от ninja2 Посмотреть сообщение
Все ж просто Гуру где вы? Ау!!!!
Так это же вы!
0
castaway
Эксперт С++
4885 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
15.06.2013, 12:28 #18
Цитата Сообщение от ninja2 Посмотреть сообщение
Значит что знаешь то и используй.
Спасибо за совет, я так всегда и делаю)
0
0x10
2475 / 1648 / 247
Регистрация: 24.11.2012
Сообщений: 4,069
15.06.2013, 12:31 #19
ninja2, три строчки, порождение дочернего процесса.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <unistd.h>
 
int main()
{
    pid_t pid = fork();
 
    if (pid < 0)
    {
        perror("fork");
        return 1;
    }
 
    if (pid == 0)
    {
        printf("Child process: %d, parent is %d\n", getpid(), getppid());
    }
    else
    {
        printf("Parent process: %d\n", getpid());
    }
 
    return 0;
}
Объяснение что тут происходит равносильно перепечатыванию книги. Документация - man fork http://linux.die.net/man/2/fork, man getpid http://linux.die.net/man/2/getpid.
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 12:34  [ТС] #20
Цитата Сообщение от XRuZzz Посмотреть сообщение
Тогда сами разбирайтесь (так как Linux самая стандартная ОС в мире )
Я думаю виндовс стандарт. Да какая разница, там что диспетчер устройств разные? Да они вроде как одинаковые, ну я сильно разници не заметил, что там если что виснет снимаешь процес, что и в виндовс.
Цитата Сообщение от lazybiz Посмотреть сообщение
Спасибо за совет, я так всегда и делаю)
Да не за что, всегда рад помочь!

Добавлено через 1 минуту
0x10, Можно просто догадаться или сделать предположение что там происходит, глядя на поведение программы. Так что ничего страшного, главное что хоть какой то примерчик кода есть.
0
XRuZzz
Антикодер
681 / 583 / 29
Регистрация: 15.09.2012
Сообщений: 2,531
15.06.2013, 12:41 #21
Цитата Сообщение от ninja2 Посмотреть сообщение
Я думаю виндовс стандарт. Да какая разница, там что диспетчер устройств разные? Да они вроде как одинаковые, ну я сильно разници не заметил, что там если что виснет снимаешь процес, что и в виндовс.
видите товарищ 0x10 тоже привёл пример для linux-a, по-прежнему думаете, что виндоус это стандарт?
поглядывайте в соседнюю тему, там как раз сказали как создать поток в винде на WinAPI
что такое поток?
1
0x10
2475 / 1648 / 247
Регистрация: 24.11.2012
Сообщений: 4,069
15.06.2013, 12:42 #22
ninja2, мало просто по коду догадаться что происходит. Надо понимать разницу между процессом и потоком, почему создание процесса тяжелее создания потока, какие подходы используются, чтобы облегчить порождение процесса (copy-on-write памяти) и т д.

Юниксовое api проще.
1
XRuZzz
Антикодер
681 / 583 / 29
Регистрация: 15.09.2012
Сообщений: 2,531
15.06.2013, 12:50 #23
Цитата Сообщение от 0x10 Посмотреть сообщение
Юниксовое api проще.
+ прогу написаную на pthread можно скомпилировать на винде. То есть если вам препод не говорил, объязательно используйте WinAPI, то phread вам подходит

Добавлено через 2 минуты
pthreads-win32
поправьте меня если я неправильно советую товарищу
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 12:50  [ТС] #24
Цитата Сообщение от XRuZzz Посмотреть сообщение
видите товарищ 0x10 тоже привёл пример для linux-a, по-прежнему думаете, что виндоус это стандарт?
линкусу с виндовс по популярности не сравнится.



Цитата Сообщение от 0x10 Посмотреть сообщение
мало просто по коду догадаться что происходит. Надо понимать разницу между процессом и потоком, почему создание процесса тяжелее создания потока, какие подходы используются, чтобы облегчить порождение процесса (copy-on-write памяти) и т д.
Ну это уже потом можно углубится, для начала хотя бы поверхностно рассмотреть.
0
XRuZzz
Антикодер
681 / 583 / 29
Регистрация: 15.09.2012
Сообщений: 2,531
15.06.2013, 12:53 #25
две таблетки
синяя и красная (или наоборот)

какую выбираете?

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от ninja2 Посмотреть сообщение
линкусу с виндовс по популярности не сравнится.
тут я с вами согласен, до пополярности таких линуксов , как андроид, дебиан, генту, убунту, винде ещё далеко

1
0x10
2475 / 1648 / 247
Регистрация: 24.11.2012
Сообщений: 4,069
15.06.2013, 12:55 #26
Цитата Сообщение от ninja2 Посмотреть сообщение
линкусу с виндовс по популярности не сравнится.
С академической точки зрения проще изучать на примере линукса. Если речь идет о применении в коммерческой разработке прикладного софта, то тут уже boost::thread/std::thread в зубы и вперед. На эту тему как раз подойдет книжка, которую советовали в посте #8.
1
XRuZzz
15.06.2013, 12:59
  #27

Не по теме:


ну если хотите обсудить что лучше винда или линукс то вам сюда Windows vs Linux (0Ah)

1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 13:06  [ТС] #28
XRuZzz, а msdn это и есть винапи или винапи входит в msdn?
0
Croessmah
Эксперт CЭксперт С++
13514 / 7672 / 866
Регистрация: 27.09.2012
Сообщений: 18,891
Записей в блоге: 3
Завершенные тесты: 1
15.06.2013, 13:07 #29
Цитата Сообщение от ninja2 Посмотреть сообщение
XRuZzz, а msdn это и есть винапи или винапи входит в msdn?
MSDN - это документация. И документация по API системы там так же присутствует
1
15.06.2013, 13:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2013, 13:07
Привет! Вот еще темы с ответами:

Исполнение функции-члена в отдельном потоке - C++
Здравствуйте, форум! Вот такой вот пример: Имеется класс, в котором есть 3 перегрузки одной функции. class A { public: ...

Исполнение .cmd через вызов CreateProcess() - C++
Привет. Заранее извините, если написал не туда. Есть .cmd файл, который надо запустить ТОЛЬКО при помощи CreateProcess() (ShellExecute в...

Программа на исполнение запускается, но пишет, что проект окончился крахом - C++
В этом коде выдает такую ошибку: #include &quot;widget.h&quot; #include &quot;ui_widget.h&quot; #include &lt;QColor&gt; #include &lt;QImage&gt; #include...

Как остановить исполнение консольного приложения без выхода из него? - C++
То есть, если пишу exit(1); , то консоль закрывается, но там есть информация о ошибке, которую должен увидеть пользователь. Какие есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru