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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2011, 18:10   #1
Любава
Новичок
Джуниор
 
Регистрация: 23.04.2011
Сообщений: 2
По умолчанию мьютексы

всем доброго времени суток!!!Ребята,помогите пожалуйста решить проблему вот по этой проге:
using namespace std;
HANDLE hMutex;
int a=2;
int b=3;
int c;
int r;
void Thread( void* pParams )
{ int y=0;
int i, num = 0;

while ( TRUE )
{
WaitForSingleObject( hMutex, INFINITE );

while(y!=100)
{
for(int i=0;i<30;i++){a++;c=a+b;;
printf("II a %d b %d c %d\n", a, b,c);
y++;r++;
}
ReleaseMutex( hMutex );

}

//ReleaseMutex( hMutex );
exit(0);
}
}
}

int main( void )
{int y=0;
hMutex = CreateMutex( NULL, FALSE, NULL );
_beginthread( Thread, 0, NULL );
Sleep(30);
while( TRUE )

{
WaitForSingleObject( hMutex, INFINITE );
while(y!=100)
{
b++;c=b+a;
printf("I a %d b %d c %d\n",a, b,c );
y++;
}
ReleaseMutex( hMutex );
}
return 0;
}

задача состоит в том,чтобы через каждые 30 итераций потоки менялись местами.т.е. вначале работает 30 итераций первый поток,поток 30 второй,затем опять 30 первый и т.д.

Последний раз редактировалось Любава; 24.10.2011 в 18:18.
Любава вне форума Ответить с цитированием
Ответ


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

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

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