Retourner au contenu associé (dépêche : Instantané sur le parallélisme et le code)
Posté par jmax17 le 24 juin 2015 à 12:26. En réponse à la dépêche Instantané sur le parallélisme et le code. Évalué à 2.
En C++
on crée un objet mutex qui utilise les fonctions mutex du système
class mutex{ system_mutex mut; public: mutex(){system_mutex_init(mut);} void lock(){system_mutex_lock(mut);} void unlock(){system_mutex_unlock(mut);} };
puis un objet mutexeLocker qui gère : * le verrouillage dans le constructeur * le déverrouillage dans le destructeur
class mutexeLocker { mutex &mut; public: mutexeLocker (mutex &_mut):mut(_mut){mut.lock();} ~ mutexeLocker (mutex &_mut):mut(_mut){mut.unlock();} };
exemple d'utilisation :
mutex mut_de_var; string var=""; void f(string &str) { mutexLocker mutLocker(mut_de_var); //verrou var = str; fonction_avec_execption(); cout << str //destruction de mutlocker déverrouillage implicite } void thread_1() { int cpt=0; while(1){ try(){ f(string("thread1 : ")<<cpt ); } catch(){} } } void thread_2() { int cpt=0; while(1){ try(){ f(string("thread2 : ")<<cpt ); } catch(){} } }
bon sous Qt et boost tout est fait et certainement mieux fait :)
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
[^] # Re: Verrou et RAII
Posté par jmax17 . En réponse à la dépêche Instantané sur le parallélisme et le code. Évalué à 2.
En C++
on crée un objet mutex qui utilise les fonctions mutex du système
puis un objet mutexeLocker qui gère :
* le verrouillage dans le constructeur
* le déverrouillage dans le destructeur
exemple d'utilisation :
bon sous Qt et boost tout est fait et certainement mieux fait :)