Итак, мне было любопытно, как кто-то мог получить случайные значения в нескольких потоках с помощью команды rand_r. Если я использовал время (NULL) для семени, все заканчиваются семенем семени, потому что потоки создаются так близко друг к другу. Все действия основаны на этом случайном семени, поэтому все потоки остаются идентичными для остальной части моей программы. Как получить [USING RAND_R (* int seed)] случайное число, которое различалось по всем потокам?C89: Многопоточные случайные значения с помощью rand_r()
Заранее спасибо.
Вы можете вызвать 'time (NULL)', чтобы получить первое семя и второе семя. Затем вы можете использовать второе семя для генерации третьего семени. И так далее. –
Как насчет использования семени = время (NULL) + thread_id? Или XOR их. – user515430