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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2010, 12:34   #1
@lenk@
Пользователь
 
Регистрация: 20.10.2009
Сообщений: 29
По умолчанию параллельное программирование

здравствуйте, возникла такая проблема:нужно ввести n потокови чтоб каждый поток писал свой номер параллельно, должно выглядеть так: для n=5 11111222233311114444433322225555555 5111222442552152333335444442111
как можно преобразовать этот код:
Код:
#include <process.h>
#include <stdio.h>
#include <iostream.h>


void  n( void* pParams )
{ int i, num = 0;

while ( 1 )
{ 
printf("n" );
}
}


int main( void )
{ int n
cout<< "введите н";
cin>> %n;
for 0 to n
{
_beginthread( n, 0, NULL );
n++
}
return 0;
}

Последний раз редактировалось @lenk@; 30.10.2010 в 12:36.
@lenk@ вне форума Ответить с цитированием
Старый 30.10.2010, 13:07   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

то, что вы привели в коде цикл - ну совсем не то, не туда пошли

помогу за денюшку, обращайтесь
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 30.10.2010, 15:48   #3
@lenk@
Пользователь
 
Регистрация: 20.10.2009
Сообщений: 29
По умолчанию

а кто нибудь безвоздмездно может помочь? пригодится любая помощь даже совет что использовать если не цикл фор
@lenk@ вне форума Ответить с цитированием
Старый 30.10.2010, 18:42   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

С фором или без - это на вкус и цвет. Вот простой пример с семафорами (можно и без них)
Код:
#include <cstdio>
#include <windows.h>

const int n=5;
HANDLE hThread_potok[n];//массив для потоков
int id[n];//массив для параметров потоков
HANDLE hSem;

DWORD WINAPI potok(void* pParams)
{
	for (int j=0; j<10; j++)
	{
		for (int i=0; i<10000000; i++);//затормаживаем немного поток для лучшей наглядности
		WaitForSingleObject(hSem,INFINITE);//ждём разрешения
		printf("%d",*(int*)pParams);
		ReleaseSemaphore(hSem,1,NULL);
	}
	return 0;
}

int main()
{
	hSem=CreateSemaphore(NULL,1,n,NULL);
	for (int i=0; i<n; i++)//запускаем серию потоков
	{
		id[i]=i;
		hThread_potok[i]=CreateThread(NULL,0,potok,&id[i],0,NULL);
	}
	for (int i=0; i<n; i++)
	WaitForSingleObject(hThread_potok[i],INFINITE);
	getchar();
}
eoln вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Параллельное программирование L10n Помощь студентам 5 05.08.2010 15:13
Параллельное программирование mages Общие вопросы C/C++ 18 25.12.2009 17:59
стандартная сортировка пузырьком. параллельное программирование. lamont61 Помощь студентам 2 11.12.2009 15:12
Параллельное программирование Renegad Фриланс 5 10.06.2008 18:11
Параллельное программирование Ugly Win Api 7 16.03.2008 15:33