Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
MasterJack
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 8
#1

Что под капотом std::mutex - C++

05.04.2013, 04:00. Просмотров 751. Ответов 6
Метки нет (Все метки)

Собственно сабж.
Под виндой это сделано на основе критической секции или через мьютекс как объект ядра?
Ну и в добавок - под линем реализован посредством вездесущего pthreads или...?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2013, 04:00     Что под капотом std::mutex
Посмотрите здесь:

Синхронизация доступа к данным с использованием std::mutex - C++
Почему при использовании мьютексов их обычно создают где то в отдаленной от вызова области? Стандартный пример выглядит приблизительно...

Std::mutex выдает исключение abort() при попытки unlock() - C++
до создания потока блокирую mutex, создаю поток и опять блокирую mutex, поток снимает блок и мы едем дальше, но выкидывает исключение... ...

Копирование памяти под std::string - C++
Есть код: const int N = 3; string* pstr = (string*)malloc(sizeof(string) * N); string arrstr; ...

Что означает std в с++? - C++
например, std::cin>>a?

что такое std::out - C++
люди, в общем препод нам попался из разряда "пришел унизился ушел" ты ему слово, он тебе в ответ десять вопросов он задал мне банальый...

Что означает using namespace std? - C++
Что означает в с++? using namespace std объясните пожалуйста простым языком))

Что такое std::allocator<T> ? - C++
я так понял возвращает адрес чего то?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.04.2013, 11:55     Что под капотом std::mutex #2
MasterJack, Зависит от компилятора же. Посмотрите исходники интересующего компилятора в чем трабл?
В gcc 4.6.3 к примеру через gthread

C++
1
2
typedef __gthread_mutex_t           __native_type;
__native_type  _M_mutex;
Который в частности может быть одним из типов

C++
1
2
typedef pthread_mutex_t __gthread_mutex_t;
typedef int __gthread_mutex_t;
И чем-то еще в зависимости от
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/* Check first for thread specific defines.  */
#if defined (_GLIBCXX___tpf_GLIBCXX___)
#include <bits/gthr-tpf.h>
#elif _GLIBCXX__PTHREADS
#include <bits/gthr-posix.h>
#elif _GLIBCXX__PTHREADS95
#include <bits/gthr-posix95.h>
#elif _GLIBCXX__DCE_THREADS
#include <bits/gthr-dce.h>
#elif _GLIBCXX__SOLARIS_THREADS
#include <bits/gthr-solaris.h>
 
/* Include GTHREAD_FILE if one is defined.  */
#elif defined(_GLIBCXX_HAVE_GTHR_DEFAULT)
#if __GXX_WEAK__
/* The pe-coff weak support isn't fully compatible to ELF's weak.
   For static libraries it might would work, but as we need to deal
   with shared versions too, we disable it for mingw-targets.  */
#ifdef _GLIBCXX___MINGW32_GLIBCXX___
#undef _GLIBCXX_GTHREAD_USE_WEAK
#define _GLIBCXX_GTHREAD_USE_WEAK 0
#endif
 
#ifndef _GLIBCXX_GTHREAD_USE_WEAK
#define _GLIBCXX_GTHREAD_USE_WEAK 1
#endif
#endif
#include <bits/gthr-default.h>
 
/* Fallback to single thread definitions.  */
#else
#include <bits/gthr-single.h>
#endif
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
05.04.2013, 12:18     Что под капотом std::mutex #3
Цитата Сообщение от ForEveR Посмотреть сообщение
Посмотрите исходники интересующего компилятора в чем трабл?
Вероятно в том, что не все компиляторы open source.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.04.2013, 14:43     Что под капотом std::mutex #4
Tulosba, Хидеры всегда есть. Если используется некий тип для Mutex-а, typedef скорее всего будет вынесен в хидер.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
05.04.2013, 14:54     Что под капотом std::mutex #5
ForEveR, ну вот на примере VS можно что-то найти?
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.04.2013, 15:11     Что под капотом std::mutex #6
Tulosba, Если мне дадут исходник хедера mutex.) А то не имею я на работе VS, а в инете найти не могу.(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2013, 16:21     Что под капотом std::mutex
Еще ссылки по теме:

Что такое std::string() - C++
И скал в гугле- там ничего понимаемого. Начну, что я вообще в символьных не шарю. Обьясните пожалуста, что это и что оно делает. ...

что показывает std::vector::max_size - C++
Returns the maximum number of elements that the vector can hold. но я щяс запускаю на ноутбуке с гигом оперативы for (int i=0; i&lt;1E9;...

Объяснить, что делает std::lock_guard ? - C++
привет. Я правильно понял, что объект std::lock_guard, примененный к мьютексу в блоке кода, при выходе из этого блока разблокирует этот...

Что означает запись std::int? - C++
Подскажите пожалуйста увидела в одном примере перед вектором было std::int я почему то думала что такое не бывает, скажите пожалуйста если...

На что влияет расположение строчки using namespace std; ? - C++
В учебнике вывод предлагают делать так: 1-ый способ: #include &lt;iostream&gt; int main() { std::cout &lt;&lt; &quot;Hello World!&quot; &lt;&lt;...


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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
05.04.2013, 16:21     Что под капотом std::mutex #7
Совместными усилиями с ForEveR выяснилось, что для VS2012 всё упирается в
C++
1
typedef struct _Mtx_internal_imp_t *_Mtx_imp_t;
внутри include\thr\xthrcommon.h
Yandex
Объявления
05.04.2013, 16:21     Что под капотом std::mutex
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru