🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

5 total messages Started by arekle Thu, 09 Jan 2020 11:32
Bezpieczeństwo dostępu dla wątków.
#310060
Author: arekle
Date: Thu, 09 Jan 2020 11:32
10 lines
1370 bytes
Dane[] dane = new Dane[daneCount];
Parallel.ForEach(Partitioner.Create(0, daneCount), (przedzial) =>
{
     for (int i = przedzial.Item1; i < przedzial.Item2; i++)
     {
         dane [i] = new Dane(i);
     }
});

Czy to jest bezpieczne?
Re: Bezpieczeństwo dostępu dla wątków.
#310061
Author: heby
Date: Thu, 09 Jan 2020 20:03
4 lines
1262 bytes
On 09/01/2020 12:32, arekle wrote:
> Czy to jest bezpieczne?

A czy konstruktor Dane jest pure? A czy allokator jest bezpieczny?
Re: Bezpieczeństwo dostępu dla wątków.
#310062
Author: arekle
Date: Fri, 10 Jan 2020 09:27
10 lines
1500 bytes
> On 09/01/2020 12:32, arekle wrote:
>> Czy to jest bezpieczne?
> 
> A czy konstruktor Dane jest pure? A czy allokator jest bezpieczny?
> 

Tak.
Chodzi mi o samo przypisanie do konkretnego indeksu tabeli.
Każdy wątek przypisuje swój indeks w tabeli. Wydaje mi się że jest 
bezpiecznie.
Re: Bezpieczeństwo dostępu dla wątków.
#310063
Author: heby
Date: Fri, 10 Jan 2020 19:57
9 lines
1594 bytes
On 10/01/2020 10:27, arekle wrote:
> Chodzi mi o samo przypisanie do konkretnego indeksu tabeli.
> Każdy wątek przypisuje swój indeks w tabeli. Wydaje mi się że jest 
> bezpiecznie.

Znowu ciezkie pytanie. A czy ktoś inny tą tablicę czyta? Bo możliwe że 
nie masz gwarancji że zapisy mają określone cechy, np kolejność.

Jesli tą tablicę wypełniasz i tyle to powinno być bezpieczne.
Re: Bezpieczeństwo dostępu dla wątków.
#310064
Author: arekle
Date: Sun, 12 Jan 2020 08:37
14 lines
1931 bytes
> On 10/01/2020 10:27, arekle wrote:
>> Chodzi mi o samo przypisanie do konkretnego indeksu tabeli.
>> Każdy wątek przypisuje swój indeks w tabeli. Wydaje mi się że jest 
>> bezpiecznie.
> 
> Znowu ciezkie pytanie. A czy ktoś inny tą tablicę czyta? Bo możliwe że 
> nie masz gwarancji że zapisy mają określone cechy, np kolejność.
> 
> Jesli tą tablicę wypełniasz i tyle to powinno być bezpieczne.

Zadaniem kodu jest szybkie /równoległe/ wypełnienie tabeli danymi które 
potem będą przetwarzane już synchronicznie.
Kolejność w tabeli ma istotne znaczenie dlatego używam tabeli i jej 
indeksów zamiast ConcurrentBag.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads