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

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

Войти
Регистрация
Восстановить пароль
 
G1yyk
0 / 0 / 0
Регистрация: 27.01.2011
Сообщений: 9
#1

многопоточность, подскажите как. - C++

06.02.2011, 12:44. Просмотров 659. Ответов 2
Метки нет (Все метки)

Добрый день.

Подскажите как сделать многопоточное приложение с общим участком памяти(будет массив с данными).

Читаю про многопооточность и зашел в тупик, на сколько я понял - threads это копии родителя с общей памятью, fork это копии родителя с разделённой памятью. То есть многопоточность будет только с функционалом родительского процесса?


А как сделать, что программа делилась на два потока с разным функционалом и с общим участком памяти. Что бы один поток читал и писал в БД, а другой поток пораждал еще кучу потоков(уже с общим функционалом) и все потоки могли бы обращаться к общему массиву?

1 - основной поток для клиентов, 2 основной поток для БД, @ общий массив. 3-8 это потомки основхных процессов 1 и 2

.................@
......._____|_____
.......|.......................|
.......1.....................2
...__|__.............__|__
...|....|....|............|....|....|
..3...4...5..........6....7...8
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2011, 12:44     многопоточность, подскажите как.
Посмотрите здесь:

Многопоточность на C++. Как реализовать? - C++
Здравствуйте! Имеется такая задача: Написать программу на С/С++, которая после запуска считает в отдельном потоке от 0 до 100, при этом...

Как создать многопоточность - C++
В сети гуглил, но так банального ответа для себя не нашёл, как размногопоточить приложение, в delphi делал так function getnumberbux:...

Как реализовать многопоточность? - C++
Как я понимаю отдельный поток может выполняться вместе с основным если я ошибаюсь поправьте меня ! 1 поток #include <iostream> //...

Как правильно реализовывается многопоточность - C++
Здравствуйте! Стоит задача создать несколько потоков, которые будут выполнять какие-то действия. У Шлее (профессиональное...

Как реализовать многопоточность в консольном приложении С++ - C++
Добрый день уважаемые программисты и системные администраторы! Я начинающий программист на С++ и мне необходимо написать программу в...

C++ Как в многопоточность передать объект класса? - C++
Доброго времени суток! Подскажите пожалуйста одну вещь, у меня есть функция внутри класса и мне нужно передать её в мультипоточность. Вот...

Многопоточность - C++
Всем привет, заметил в одном проекте подобный код: struct Counter { int i; } #define g_counter ACE_Singleton< Counter,...

Многопоточность С++ - C++
Добрый вечер! написал вот такую программку. std::vector<std::thread> threads; std::recursive_mutex mutex; for (int i...

Многопоточность c++ - C++
Добрый день! Я только начинаю изучать многозадачность в c++ и у меня возник вопрос о том как возможно использовать один объект разными...

Многопоточность - C++
podskazite paru premerov mnogopoto4jnasti, ili gde eto najti.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
slavich
12 / 12 / 1
Регистрация: 25.10.2009
Сообщений: 32
06.02.2011, 13:06     многопоточность, подскажите как. #2
Классический пример создания процесса:
C
1
2
3
4
5
6
pid = fork(); 
switch( pid ) { 
 -1:; // Ошибка 
0:;  // Дочерний процесс 
default:;  // Родительский процесс 
}
Создание потока:
C
1
int pthread_create(pthread_t *thread, pthread_attr_t *attr, void * (*start_routine)(void *), void *arg);
Для общего участка памяти используй функции:
C
1
2
3
#include <sys/shm.h> 
 int shmget(key_t key, size_t size, int flag); 
void *shmat(int shmid, const void *addr, int flag);
G1yyk
0 / 0 / 0
Регистрация: 27.01.2011
Сообщений: 9
06.02.2011, 13:47  [ТС]     многопоточность, подскажите как. #3
Наверное понял.

В создании нити указываю процедуру для фхода и все благополучно разделяется один поток вуыполяняет процедуру соденения с БД, а в другой поток плодить еще нити для подключения клиентов.
Yandex
Объявления
06.02.2011, 13:47     многопоточность, подскажите как.
Ответ Создать тему
Опции темы

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