Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 27.01.2011
Сообщений: 9
1

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

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

Author24 — интернет-сервис помощи студентам
Добрый день.

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

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


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

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

.................@
......._____|_____
.......|.......................|
.......1.....................2
...__|__.............__|__
...|....|....|............|....|....|
..3...4...5..........6....7...8
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2011, 12:44
Ответы с готовыми решениями:

Подскажите статью про многопоточность
привет! подскажите толковую статью по многопоточности в питоне,хочется ускорить работу приложения...

Подскажите где можно почитать про многопоточность в Delphi
Всем привет! Из названия темы уже ясно, что мне нужна информация по многопоточности в Delphi....

Многопоточность, как?
Покажите как правильно реализовать, пробовал сам разобраться, мозгов нехватило. private:...

Как реализуется многопоточность в VB?
Подскажите плз как реализуется многопоточность в VB, если конечно здесь таковая имеется.

2
13 / 13 / 2
Регистрация: 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);
1
0 / 0 / 0
Регистрация: 27.01.2011
Сообщений: 9
06.02.2011, 13:47  [ТС] 3
Наверное понял.

В создании нити указываю процедуру для фхода и все благополучно разделяется один поток вуыполяняет процедуру соденения с БД, а в другой поток плодить еще нити для подключения клиентов.
0
06.02.2011, 13:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2011, 13:47
Помогаю со студенческими работами здесь

Как включить многопоточность в Qt?
Пытаюсь сделать многопоточную функцию. Вроде должна работать, но в Qt выдает ошибку. ХЗ что делать....

Как сделать многопоточность?
Парсится около 600 ссылок и если делать все через регулярки будет часы проверять. Как сделать...

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

Как создать многопоточность
Здравствуйте, Пытаюсь хотя бы на самом простом уровне понять, как работает std thread, для этого...

Как поддерживать многопоточность?
Есть восьмиядерный процессор, у которого 7 ядер из восьми делают вид, что работают. А на самом...

Как организовать многопоточность?
здравствуйте, собственно дело такое - есть сайт, на котором есть раздел в котором 20 страниц,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru