5 个版本

0.0.0-pre-release3.12023 年 1 月 13 日
0.0.0-pre-release3.02023 年 1 月 12 日
0.0.0-pre-release1.02023 年 1 月 11 日

#20 in #pop

22 每月下载量

MIT 许可证

15KB
384

Unlink


lib.rs:

此软件包提供了一个支持并发 pushpoppeekextend 的无锁栈。

use unlink::Stack;
use std::thread;

let stack = Stack::new();
thread::scope(|s| {
    let stack = &stack;

    s.spawn(move || {
        for i in 0..100 {
            stack.push(i);
        }
    });

    s.spawn(move || {
        for _ in 0..100 {
            stack.pop();
        }
    });

    s.spawn(move || {
        for _ in 0..100 {
            let _ = stack.peek();
        }
    });

    s.spawn(move || {
        for i in 0..10_usize {
            stack.append(vec![i.pow(2), i.pow(3), i.pow(4)].into_iter().collect());
        }
    });
});

stack.into_iter().for_each(|v| print!("{}, ", v));

依赖项

~0.1–25MB
~334K SLoC