Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

design pattern za thread-safety

[es] :: C/C++ programiranje :: design pattern za thread-safety

[ Pregleda: 2702 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

nenadus
Belgrade

Član broj: 70488
Poruke: 23
213.137.127.*



Profil

icon design pattern za thread-safety27.10.2007. u 21:26 - pre 200 meseci
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.
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.plus.com.



+4 Profil

icon Re: design pattern za thread-safety27.10.2007. u 21:36 - pre 200 meseci
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?
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.fibertel.com.ar.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: design pattern za thread-safety28.10.2007. u 02:01 - pre 200 meseci
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

Tko leti vrijedi
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: design pattern za thread-safety28.10.2007. u 08:00 - pre 200 meseci
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]
 
Odgovor na temu

[es] :: C/C++ programiranje :: design pattern za thread-safety

[ Pregleda: 2702 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.