Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2011, 15:53   #1
boo_mago
 
Регистрация: 19.09.2010
Сообщений: 7
По умолчанию Многопоточность

Уважаемые программисты! Сможет ли кто-нибудь хотя бы примерно объяснить, как реализовать, например, вычисление корня квадратного уравнения, используя несколько независимых потоков. Программа должна состоять из главного потока, принимающего с клавиатуры исходные данные и выводящего на экран результат, и нескольких служебных потоков, способных по отдельности выполнять элементарные арифметические действия. Метод синхронизации - семафоры, способ передачи данных между потоками - анонимные (неименованные) каналы. Много копался в гугле, но везде все написанно достаточно трудным языком. Кто знает, в общем виде напишите пожалуйста что за чем в программе должно быть хотя бы. Спасибо вам!
boo_mago вне форума Ответить с цитированием
Старый 21.03.2011, 16:41   #2
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

OpenMP. Вот пример для C, производит многопоточную инициализацию большого массива:
Код:
int main() {
    const int N = 100000;
    int i, a[N];
 
    #pragma omp parallel for
    for (i = 0; i < N; i++) {
        a[i] = 2 * i;
    }
 
    return 0;
}
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 21.03.2011 в 18:15.
Obey-Kun вне форума Ответить с цитированием
Старый 21.03.2011, 18:20   #3
boo_mago
 
Регистрация: 19.09.2010
Сообщений: 7
По умолчанию

Хм, но меня просят использовать функции вида:

CreateProcess()
CreateThread() и подобные для потоков

ReadFile()
WriteFile() для работы с буфером

CreatePipe() для работы с каналом

СreateSemaphore() и подобные для работы с семафорами

Но я в них как-то не могу разобраться, из-за большого количества параметров.
boo_mago вне форума Ответить с цитированием
Старый 21.03.2011, 18:25   #4
boo_mago
 
Регистрация: 19.09.2010
Сообщений: 7
По умолчанию

Вообще про CreateThread() я бы хотел узнать по подробней, какой-нибудь простенький пример демонстрирующий реализацию этой функции.
boo_mago вне форума Ответить с цитированием
Старый 21.03.2011, 18:52   #5
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

А, ну это виндовский велосипедик. Удачи в этом нелёгком деле
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 21.03.2011, 19:29   #6
boo_mago
 
Регистрация: 19.09.2010
Сообщений: 7
По умолчанию

То есть примера с CreateThread() я не дождусь тут?
boo_mago вне форума Ответить с цитированием
Старый 21.03.2011, 21:05   #7
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

ох, ох, ну вот вам пример

Код:
void thread (void*p){//процесс, показывающий изменение счетчика с разницей в 0,5 секунд
	int *c=(int*)p;
	while(1){
		cout<<"\r"<<*c<<"        ";
		if(*c==(-1))
			_endthread();
		Sleep(500);
	}
}
и вызов в функции вот такой
Код:
	_beginthread(thread,0,(void*)&j);//				поток-процесс
упс, вот мораль - сначала читай тему :D
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery

Последний раз редактировалось kaljan775; 21.03.2011 в 21:12.
kaljan775 вне форума Ответить с цитированием
Старый 21.03.2011, 21:23   #8
boo_mago
 
Регистрация: 19.09.2010
Сообщений: 7
По умолчанию

Да, что-то я тут не вижу CreateThread()

=)
boo_mago вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многопоточность и с++ Koshmarovsky Visual C++ 13 06.09.2010 20:39
многопоточность DeDoK Общие вопросы Delphi 6 01.08.2010 02:14
Многопоточность kroŧ Общие вопросы Delphi 5 21.06.2010 10:47
Многопоточность JakSon Общие вопросы Delphi 10 27.12.2009 02:19
Многопоточность. newmister Общие вопросы Delphi 9 24.07.2009 12:54