Перейти к публикации
  • Сейчас на странице   Всего пользователей: 1   (0 пользователей, 1 гость)

Hed-kun

Программирование Т. 5

Рекомендованные сообщения

unsigned _stdcall t(void*)
{
WaitForSingleObject(mutex,INFINITE);
printf(":D:D:D\n");
ReleaseMutex(mutex);
return NULL;
}
int main()
{
mutex=CreateMutex(NULL,FALSE,NULL);
_beginthreadex(NULL,NULL,&t,NULL,0,NULL);
Sleep(0);
WaitForSingleObject(mutex,INFINITE);
printf("HD\n");
ReleaseMutex(mutex);
}

WaitForSingleObject(mutex,INFINITE); - заблочит мутекс так что другие потоки юзающие ту же функцию не смогут зайти внутрь?

типа void threadFunction (int extThreadId) {  
//проверить заблочен ли мутекс, если нет - блочим
WaitForSingleObject(mutex[/background][background=transparent],[/background][background=transparent]INFINITE[/background][background=transparent]);[/background]
[background=transparent][color=#2B91AF][background=transparent]	   [/background][/color]cout<<[/background][color=#800000][background=transparent]"погружаюсь в поток "<<[/background][/color][background=transparent] [/background]extThreadId<<endl;[background=transparent]   [/background]
[color=#2B91AF][background=transparent][background=transparent]	   [/background]ReleaseMutex[/background][/color][background=transparent]([/background][background=transparent]mutex[/background][background=transparent]);[/background]	
}
else {cout << "thread "<<extThreadId<<" returned error 0 - resource unavalable"<<endl;
}

как проверить что mutex занят?

ебаааааааать

http://msdn.microsoft.com/en-us/library/windows/desktop/ms686927(v=vs.85).aspx


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

я это читал уже, хуйня какаято

Поделиться сообщением


Ссылка на сообщение

в чем хуйня?

WaitForSingleObject() останавливает функцию до тех пор, пока не освободится мьютекс.

ReleaseMutex() освобождает занятый тобой мьютекс

 

через WaitForMultipleObjects() можешь ждать хоть 50 мьютексов.


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
останавливает функцию до тех пор, пока не освободится мьютекс.
все что мне было надо, спс

Поделиться сообщением


Ссылка на сообщение

в 11 плюсах встроили какие-то потоки кстати

 

хабр как всегда вовремя

http://habrahabr.ru/post/182610/

 

ну а если винапи не устраивает, а с++11 никак, то pthread тебе в помощь


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
(изменено)

я читал гдето что phtread на винде нету

Compiling the source code....

$g++ main.cpp -o demo -lm -pthread -lgmpxx -lreadline 2>&1

main.cpp:2:21: fatal error: windows.h: No such file or directory

compilation terminated.

клева

нужен код который будет работать в бидлере6 или древней студии

или может есть компилер c++11/c0x весящий пару мегабайт где будут все h файлы? у меня щас самый норм вариант это студия (4гб) + буст (~40000 файлов в 1.5 гб)


Изменено пользователем justice_st

Поделиться сообщением


Ссылка на сообщение
в 80% случаев вирусный GPL или LGPL.

Пруфы? При чём пруфы возможность есть предоставить по сравнению с закрытыми лицензиями.

Поделиться сообщением


Ссылка на сообщение

студия знает windows.h

 

и есть птреды под винду, я сам их юзал, когда надо было лабу с юникса на винду перенести

ftp://sourceware.org/pub/pthreads-win32/dll-latest

 

и сам сдк винды лежит в Program Files\Windows Kits

 

у меня дальше

c:\Program Files\Windows Kits\8.0\Include\um\windows.h

 

возможно для мингв надо руками путь к этой папке указывать, раз он не видит сам.

 

а хотя я напиздел

вижла берет отсюда

 

c:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
Гость 2poy_nyasha

ох, ебать, кое-как смог напарсить этот ебанный keyValue

 

работает медленно, но работает

 

ахахахахахахаххахаа

 

бля, оказалось мне эта инфа и не нужна вообще

Поделиться сообщением


Ссылка на сообщение

через 10 лет, когда вымрет все что касается десктоп приложений.. посмотрим кто окажется макакой

Поделиться сообщением


Ссылка на сообщение

вымрет все что касается десктоп приложений

чета десктоп уже 20 лет как вымирает, всё никак не может умереть 3297284.gif3297284.gif3297284.gif3297284.gif3297284.gif

Поделиться сообщением


Ссылка на сообщение
(изменено)

я читал гдето что phtread на винде нету

Compiling the source code....

$g++ main.cpp -o demo -lm -pthread -lgmpxx -lreadline 2>&1

main.cpp:2:21: fatal error: windows.h: No such file or directory

compilation terminated.

клева

нужен код который будет работать в бидлере6 или древней студии

или может есть компилер c++11/c0x весящий пару мегабайт где будут все h файлы? у меня щас самый норм вариант это студия (4гб) + буст (~40000 файлов в 1.5 гб)

в бусте есть потоки и мутексы. юзай их.

птреад для тебя будет оверкилл походу.


Изменено пользователем Tinplz

Поделиться сообщением


Ссылка на сообщение

через 10 лет, когда вымрет все что касается десктоп приложений.. посмотрим кто окажется макакой

Но сейчас то макаки - вы.

Поделиться сообщением


Ссылка на сообщение

я читал гдето что phtread на винде нету

Compiling the source code....

$g++ main.cpp -o demo -lm -pthread -lgmpxx -lreadline 2>&1

main.cpp:2:21: fatal error: windows.h: No such file or directory

compilation terminated.

клева

нужен код который будет работать в бидлере6 или древней студии

или может есть компилер c++11/c0x весящий пару мегабайт где будут все h файлы? у меня щас самый норм вариант это студия (4гб) + буст (~40000 файлов в 1.5 гб)

в бусте есть потоки и мутексы. юзай их.

птреад для тебя будет оверкилл походу.

я уже сделал на бусте то что надо было, но тот кто это будет сдавать - он же никогда сам это не скомпилит :pray:

Поделиться сообщением


Ссылка на сообщение

положи в папку нужные либы\дллки и инклюды и не надо весь буст


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
Гость 2poy_nyasha

через 10 лет, когда вымрет все что касается десктоп приложений.. посмотрим кто окажется макакой

Но сейчас то макаки - вы.

ты же тоже веб-макака, так что не кукарекай

Поделиться сообщением


Ссылка на сообщение

не ну я заебался уже

короче

с++, прога должна содержать структуру, в которую через виндоус формс вводятся фио курс пол возраст, а она потом находит самое популярное женское имя на выбранном курсе

у меня счетчик "встречаемости" имени всегда =0, хотя все должно работать нормально

гляньте плиз :/

 

кусок кода где идет поиск популярного имени

 

private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
int i,j;
//String ^s;
//String ^d;
int cour2=Convert::ToInt32(comboBox4->SelectedItem);
int b[5];
for(i=0;i<5;i++)
b[i]=0;
for(j=0;j<5;j++)
{
if((a[j].gen=='Ж')&&(a[j].cour==cour2))
 {
 //d=gcnew System::String(a[j].name);
 for (i=0;i<5;i++)
   {
   if((a[i].gen=='Ж')&&(a[i].cour==cour2))
    {
    //s=gcnew System::String(a[i].name);    
    if(strcmp(a[i].name,a[j].name)==0)
    b[j]++;
    }
   }

  }
  j++;
}
int q;
String ^pp;
for(i=0;i<4;i++)
{
if(b[i+1]>=b[i])
q=i+1;
}
if(b[q]==0)
pp="На данном курсе нет девушек";
else if(b[q]=1)
pp="Наиоболее популярное имя определить невозможно";
else
pp=gcnew System::String(a[q].name);
MessageBox::Show(pp);
for(i=0;i<5;i++)
b[i]=0;
   }

 

 

вест проект


giphy.gif

Поделиться сообщением


Ссылка на сообщение

мало того, что я синтаксис с++ воспринимаю с трудом, но твои названия переменных это какой-то пиздец...

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...