Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 3.441 pregleda

Najnovija ↓

design pattern za thread-safety 27.10.2007. u 22:26 · pre 231 mesec #1
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.
Re: design pattern za thread-safety 27.10.2007. u 22:36 · pre 231 mesec #2
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?
Re: design pattern za thread-safety 28.10.2007. u 09:00 · pre 231 mesec
izmenjeno 1 put, poslednji put X Files 29.04.2008. u 08:08
  1. X Files29.04.2008. u 08:08zapis iz teksta poruke
#4
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 );
   // ...
}
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme