tengo la siguiente claseRandom.Next() devuelve a veces mismo número en hilos separados
class Program
{
static Random _Random = new Random();
static void Main(string[] args)
{
...
for (int i = 0; i < no_threads; ++i)
{
var thread = new Thread(new ThreadStart(Send));
thread.Start();
}
...
}
static void Send()
{
...
int device_id = _Random.Next(999999);
...
}
}
El código crea el número especificado de hilos, comienza cada una, y asigna cada hilo un azar device_id
. Por alguna razón, los primeros dos hilos que se crean a menudo tienen el mismo device_id
. No puedo entender por qué sucede esto.
Esto es estadísticamente correcta, como si tiras 2 dados que en algún momento le dan el mismo número, más aleatoria no es seguro para subprocesos - > http://blogs.msdn.com/b/pfxteam/archive/2009/02/19/9434171.aspx – dvhh
@Mitch: ninguna de las preguntas vinculadas tiene que ver con la misma situación. Es solo la seguridad del hilo lo que es relevante aquí, ya que solo hay una instancia de Random. –
@Jon: sí, eso es cierto. –