当前位置: 首页 > news >正文

如何用国外网站做头条wordpress页面调用分类文章

如何用国外网站做头条,wordpress页面调用分类文章,廊坊seo网站管理,重庆建站免费模板tokio 是 rust 生态中流行的异步运行时框架。在实际生产中我们如果希望 tokio 应用程序与特定的 cpu core 绑定该怎么处理呢#xff1f;这次我们来聊聊这个话题。 首先我们先写一段简单的多任务程序。 use tokio::runtime; pub fn main() {let rt runtime::Builder::new_mu… tokio 是 rust 生态中流行的异步运行时框架。在实际生产中我们如果希望 tokio 应用程序与特定的 cpu core 绑定该怎么处理呢这次我们来聊聊这个话题。 首先我们先写一段简单的多任务程序。 use tokio::runtime; pub fn main() {let rt runtime::Builder::new_multi_thread().enable_all().build().unwrap();rt.block_on(async {for i in 0..8 {println!(num {}, i);tokio::spawn(async move {loop {let mut sum: i32 0;for i in 0..100000000 {sum sum.overflowing_add(i).0;}println!(sum {}, sum);}});}}); } 程序非常简单首先构造一个 tokio runtime 环境然后派生多个 tokio 并发每个并发执行一个无限循环做 overflowing_add。overflowing_add 函数返回一个加法的元组以及一个表示是否会发生算术溢出的布尔值。如果会发生溢出那么将返回包装好的值。然后取元祖的第一个元素打印。 这个程序运行在 Ubuntu 20 OS4 core cpu。通过 nmon 的监控如下 可以看到每个 core 都有负载。 要想把负载绑定在某一 core 上需要使用 core_affinity_rs。core_affinity_rs 是一个用于管理 CPU 亲和力的 Rust crate。目前支持 Linux、Mac OSX 和 Windows。官方宣称支持多平台本人只做了 linux 操作系统的测试。 我们把代码修改一下 use tokio::runtime;pub fn main() {let core_ids core_affinity::get_core_ids().unwrap();println!(core num {}, core_ids.len());let core_id core_ids[1];let rt runtime::Builder::new_multi_thread().on_thread_start(move || {core_affinity::set_for_current(core_id.clone());}).enable_all().build().unwrap();rt.block_on(async {for i in 0..8 {println!(num {}, i);tokio::spawn(async move { loop {let mut sum: i32 0;for i in 0..100000000 {sum sum.overflowing_add(i).0;}println!(sum {}, sum); }});}}); } 在构建多线程 runtime 时在 on_thread_start 设置 cpu 亲和。可以看到负载被绑定到了指定的 core 上。 上面的代码只是把负载绑定到了一个 core 上那么要绑定多个核怎么办呢 我们看看下面的代码 pub fn main() {let core_ids core_affinity::get_core_ids().unwrap();println!(core num {}, core_ids.len());let rt runtime::Builder::new_multi_thread().enable_all().build().unwrap();let mut idx 2;rt.block_on(async {for i in 0..8 {println!(num {}, i);let core_id core_ids[idx];if idx.eq((core_ids.len() - 1)) {idx 2;} else {idx 1;}tokio::spawn(async move {let res core_affinity::set_for_current(core_id);println!({}, res);loop {let mut sum: i32 0;for i in 0..100000000 {sum sum.overflowing_add(i).0;}println!(sum {}, sum);}});}}); } 代码需要把所有负载绑在 core3 和 core4 上。原理是在派生任务中加入 core_affinity 设置。通过调整 idx将派生并发平均绑定在指定的 core 上。代码运行的监控如下图。
http://www.w-s-a.com/news/738596/

相关文章:

  • 旅游网站建设技术解决方案wordpress主题安装后找不到
  • 网站图片文字排版错误管理系统界面设计
  • 网站建设 台州广州惠科互联网技术有限公司
  • 网站页面尺寸大小四川鸿业建设集团网站
  • 做女朋友的网站局网站建设方案word
  • 做阿里国际网站会有成效吗科技网站有哪些
  • 高端公司网站建设北京两学一做网站
  • 黄埔网站建设设计wordpress 文件夹改名
  • 怎么什么软件可以吧做网站最火的二十个电商app
  • wordpress theme sage网站seo优化加推广
  • 建设一个大型电影网站公司网站建设工作总结
  • 传奇网站一般怎么做的宇泽佛山网站建设
  • google网站入口电商运营十大基础知识
  • 建设公司网站的细节中国建设网网站
  • 重庆美邦建网站宝安网页设计
  • 建网站的地址十堰做网站
  • 怎么评判一个网站做的好与坏专做情侣装网站
  • 网站管理助手v3历史上的今天 网站如何做
  • 网站建设与管理的就业方向网站开发前端模板
  • 对网站建设的维护深圳网络推广推荐
  • wordpress多站共享授权码wordpress数据库缓存插件
  • 建一个购物网站多少钱上海商标注册
  • 琪觅公司网站开发面点培训学校哪里有
  • 北京建设工程信息网站江苏企业网站建设
  • php电子商务网站建设wordpress新建的页面如何加xml
  • 去百度建网站外贸业务推广
  • 百度seo 站长工具网络营销课程个人总结3000字
  • 设计品牌网站wordpress商城 中文站
  • 公司网站要备案吗百度售后电话人工服务
  • 北京移动网站建设制作一个购物网站