[ nenadus @ 27.10.2007. 21:26 ] @
Da li neko zna (ili je cuo za) neki design-pattern koji istovremeno garantuje thread-safety klase i omogucava da imamo vise od jedne instance klase (dakle Singleton otpada)? Pozdrav, Nenad. |
[ nenadus @ 27.10.2007. 21:26 ] @
[ NastyBoy @ 27.10.2007. 21:36 ] @
To shto si naveo ispunjava svaka klasa iz, recimo, std-a (thread-safe? check. Mozhe da se instancira kad god? check), i nema tu nikakvog pattern-a.
Shta tebi tachno treba? [ kiklop74 @ 28.10.2007. 02:01 ] @
Thread safe singleton
http://www.codeproject.com/cpp/pdesingletontemplatenomfc.asp A kao i uvek treba poceti od vikipedije: http://en.wikipedia.org/wiki/Thread_safety [ X Files @ 28.10.2007. 08:00 ] @
Možda si mislio na RAII (a to je u suštini ono što je rekao NastyBoy u vezi STL-a) ?
("The RAII technique is often used for controlling thread locks in multi-threaded applications.") Imaš primer za "file". Ili, nešto slično: --- H --- Code: class NEKA_KLASA { // ... CRITICAL_SECTION LogCriticalSection; // ... }; --- H --- Code: class CSLock { public: LPCRITICAL_SECTION fcs; CSLock( LPCRITICAL_SECTION acs ) : fcs( acs ) { if ( fcs ) EnterCriticalSection( fcs ); } ~CSLock() { if ( fcs ) LeaveCriticalSection( fcs ); } }; --- CPP --- Code: void NEKA_KLASA::GoSendMessageToLog( string AEvent ) { CSLock lock( &LogCriticalSection ); // ... // ... ovde je thread safe kod // ... } NEKA_KLASA::NEKA_KLASA() // konstruktor { // ... InitializeCriticalSection( &LogCriticalSection ); // ... } NEKA_KLASA::~NEKA_KLASA() // destruktor { // ... DeleteCriticalSection( &LogCriticalSection ); // ... } [Ovu poruku je menjao X Files dana 29.04.2008. u 08:08 GMT+1] Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|