Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
23
Task/Concurrent-computing/V-(Vlang)/concurrent-computing-1.v
Normal file
23
Task/Concurrent-computing/V-(Vlang)/concurrent-computing-1.v
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import time
|
||||
import rand
|
||||
import rand.pcg32
|
||||
import rand.seed
|
||||
|
||||
fn main() {
|
||||
words := ['Enjoy', 'Rosetta', 'Code']
|
||||
seed_u64 := u64(time.now().unix_time_milli())
|
||||
q := chan string{}
|
||||
for i, w in words {
|
||||
go fn (q chan string, w string, seed_u64 u64) {
|
||||
mut rng := pcg32.PCG32RNG{}
|
||||
time_seed := seed.time_seed_array(2)
|
||||
seed_arr := [u32(seed_u64), u32(seed_u64 >> 32), time_seed[0], time_seed[1]]
|
||||
rng.seed(seed_arr)
|
||||
time.sleep(time.Duration(rng.i64n(1_000_000_000)))
|
||||
q <- w
|
||||
}(q, w, seed_u64 + u64(i))
|
||||
}
|
||||
for _ in 0 .. words.len {
|
||||
println(<-q)
|
||||
}
|
||||
}
|
||||
19
Task/Concurrent-computing/V-(Vlang)/concurrent-computing-2.v
Normal file
19
Task/Concurrent-computing/V-(Vlang)/concurrent-computing-2.v
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
import time
|
||||
import rand
|
||||
import rand.pcg32
|
||||
import rand.seed
|
||||
|
||||
fn main() {
|
||||
words := ['Enjoy', 'Rosetta', 'Code']
|
||||
mut threads := []thread{} // mutable array to hold the id of the thread
|
||||
for w in words {
|
||||
threads << go fn (w string) { // record the thread
|
||||
mut rng := pcg32.PCG32RNG{}
|
||||
time_seed := seed.time_seed_array(4) // the time derived array to seed the random generator
|
||||
rng.seed(time_seed)
|
||||
time.sleep(time.Duration(rng.i64n(1_000_000_000)))
|
||||
println(w)
|
||||
}(w)
|
||||
}
|
||||
threads.wait() // join the thread waiting. wait() is defined for threads and arrays of threads
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue