Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yitter
雪花ID全家桶(SnowFlake IdGenerator)
提交
519206cd
雪
雪花ID全家桶(SnowFlake IdGenerator)
项目概览
yitter
/
雪花ID全家桶(SnowFlake IdGenerator)
11 个月 前同步成功
通知
201
Star
3
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
雪
雪花ID全家桶(SnowFlake IdGenerator)
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
519206cd
编写于
7月 15, 2022
作者:
yitter
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
auto commit
上级
cce7a653
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
22 deletion
+24
-22
Rust/source/src/main.rs
Rust/source/src/main.rs
+24
-22
未找到文件。
Rust/source/src/main.rs
浏览文件 @
519206cd
mod
idgen
;
use
chrono
::
Utc
;
use
idgen
::
*
;
use
std
::
thread
;
use
chrono
::
Utc
;
use
std
::
time
::
Duration
;
fn
main
()
{
println!
(
"Hello, world! Rust"
);
// 总执行次数
let
times
=
50000
;
let
times
=
50000
0
;
// 是否启用多线程测试
let
multiThread
=
false
;
...
...
@@ -18,7 +17,7 @@ fn main() {
// 全局设置一次运行参数
let
mut
options
=
IdGeneratorOptions
::
New
(
1
);
options
.WorkerIdBitLength
=
6
;
options
.SeqBitLength
=
6
;
options
.SeqBitLength
=
10
;
//... 可以继续设置其它 options 参数
YitIdHelper
::
SetIdGenerator
(
options
);
...
...
@@ -32,24 +31,29 @@ fn main() {
while
i
<
times
{
i
+=
1
;
if
multiThread
{
// 这是多线程
thread
::
spawn
(
move
||
{
id
=
YitIdHelper
::
NextId
();
println!
(
"{}, id: {}"
,
i
,
id
);
});
}
else
{
// 这是单线程
id
=
YitIdHelper
::
NextId
();
}
}
YitIdHelper
::
NextId
();
println!
(
"最后生成的id: {}"
,
id
);
if
!
multiThread
{
// 多线程情况下,时间统计不准确
let
end
=
Utc
::
now
()
.timestamp_millis
();
println!
(
"单线程用时 {} ms"
,
end
-
start
);
// if multiThread { // 这是多线程
// thread::spawn(move || {
// id = YitIdHelper::NextId();
// println!("{}, id: {}", i, id);
// });
// } else { // 这是单线程
// id = YitIdHelper::NextId();
// }
}
thread
::
sleep
(
std
::
time
::
Duration
::
from_millis
(
2000
));
let
end
=
Utc
::
now
()
.timestamp_millis
();
println!
(
"单线程用时 {} ms"
,
end
-
start
);
// println!("最后生成的id: {}", id);
// if !multiThread {
// // 多线程情况下,时间统计不准确
// let end = Utc::now().timestamp_millis();
// println!("单线程用时 {} ms", end - start);
// }
thread
::
sleep
(
std
::
time
::
Duration
::
from_millis
(
1000
));
}
}
...
...
@@ -71,6 +75,4 @@ fn set_redis() {
// },
// Err(error) => println!("Unable to create Redis client: {}", error)
// }
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录