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

不想网站备案如何办wordpress仿国际

不想网站备案如何办,wordpress仿国际,怎样才能做自己的网站,网站页面设计模板代码文章目录 Rust对多线程的支持std::thread::spawn创建线程线程与 move 闭包 使用消息传递在线程间传送数据std::sync::mpsc::channel()for received in rx接收两个producer 共享状态并发std::sync::Mutex在多个线程间共享Mutex#xff0c;使用std::sync::Arc 参考 Rust对多线程… 文章目录 Rust对多线程的支持std::thread::spawn创建线程线程与 move 闭包 使用消息传递在线程间传送数据std::sync::mpsc::channel()for received in rx接收两个producer 共享状态并发std::sync::Mutex在多个线程间共享Mutex使用std::sync::Arc 参考 Rust对多线程的支持 rust默认仅支持一对一线程也就是说操作系统线程。 可以引入crate包来使用绿色线程。 std::thread::spawn创建线程 use std::thread; use std::time::Duration;fn main() {let handle thread::spawn(|| {for i in 1..10 {println!(hi number {} from the spawned thread!, i);thread::sleep(Duration::from_millis(1));}});for i in 1..5 {println!(hi number {} from the main thread!, i);thread::sleep(Duration::from_millis(1));}handle.join().unwrap(); } 编译  cargo run warning: unused Result that must be used-- src/main.rs:17:5| 17 | handle.join();| ^^^^^^^^^^^^^| note: this Result may be an Err variant, which should be handled note: #[warn(unused_must_use)] on by default help: use let _ ... to ignore the resulting value| 17 | let _ handle.join();| warning: smartPtr (bin smartPtr) generated 1 warningFinished dev profile [unoptimized debuginfo] target(s) in 0.00sRunning target/debug/smartPtr hi number 1 from the main thread! hi number 1 from the spawned thread! hi number 2 from the main thread! hi number 2 from the spawned thread! hi number 3 from the main thread! hi number 3 from the spawned thread! hi number 4 from the main thread! hi number 4 from the spawned thread! hi number 5 from the spawned thread! hi number 6 from the spawned thread! hi number 7 from the spawned thread! hi number 8 from the spawned thread! hi number 9 from the spawned thread!线程与 move 闭包 use std::thread;fn main() {let v vec![1, 2, 3];let handle thread::spawn(move || {println!(Heres a vector: {:?}, v);});handle.join().unwrap(); } 编译  cargo runBlocking waiting for file lock on build directoryCompiling smartPtr v0.1.0 (/home/wangji/installer/rust/bobo/smartPtr)Finished dev profile [unoptimized debuginfo] target(s) in 19.07sRunning target/debug/smartPtr Heres a vector: [1, 2, 3]使用消息传递在线程间传送数据 std::sync::mpsc::channel() 只支持多个生产者和一个消费者 use std::sync::mpsc; //mpscmulti-producer single-consumer use std::thread;fn main() {let (tx, rx) mpsc::channel();thread::spawn(move || {let val String::from(hi);tx.send(val).unwrap();});// recv()会阻塞// try_recv()是非阻塞,适合使用loop来尝试接收let received rx.recv().unwrap();println!(Got: {}, received); } for received in rx接收 use std::sync::mpsc; use std::thread; use std::time::Duration;fn main() {let (tx, rx) mpsc::channel();thread::spawn(move || {let vals vec![String::from(hi),String::from(from),String::from(the),String::from(thread),];for val in vals {tx.send(val).unwrap();thread::sleep(Duration::from_secs(1));}});// 当发送方tx结束了接收方rx就会结束for循环也会结束for received in rx {println!(Got: {}, received);} } 两个producer use std::sync::mpsc; use std::thread; use std::time::Duration;fn main() {// --snip--let (tx, rx) mpsc::channel();let tx1 tx.clone(); //tx和tx1都连接到mpsc::channel()thread::spawn(move || {let vals vec![String::from(hi),String::from(from),String::from(the),String::from(thread),];for val in vals {tx1.send(val).unwrap();thread::sleep(Duration::from_secs(1));}});thread::spawn(move || {let vals vec![String::from(more),String::from(messages),String::from(for),String::from(you),];for val in vals {tx.send(val).unwrap();thread::sleep(Duration::from_secs(1));}});for received in rx {println!(Got: {}, received);}// --snip-- } 共享状态并发 std::sync::Mutex use std::sync::Mutex;fn main() {let m Mutex::new(5);{// m.lock()会阻塞当前线程获取锁位置let mut num m.lock().unwrap();*num 6;// 退出时会自动释放锁}println!(m {:?}, m); } 编译及运行  cargo runCompiling smartPtr v0.1.0 (/home/wangji/installer/rust/bobo/smartPtr)Finished dev profile [unoptimized debuginfo] target(s) in 6.57sRunning target/debug/smartPtr m Mutex { data: 6, poisoned: false, .. }在多个线程间共享Mutex使用std::sync::Arc use std::sync::Arc; use std::sync::Mutex; use std::thread;fn main() {// Mutex于Arc经常一起使用// Rc::new可以让Mutex拥有多个所有者let counter Arc::new(Mutex::new(0));let mut handles vec![];for _ in 0..10 {let counter Arc::clone(counter); //Rc::clone不是真正的clone只是增加引用计数let handle thread::spawn(move || {let mut num counter.lock().unwrap(); //counter.lock()可以获得可变的引用类似于RefCell智能指针*num 1;});handles.push(handle);}for handle in handles {handle.join().unwrap();}println!(Result: {}, *counter.lock().unwrap()); } 编译  cargo runCompiling smartPtr v0.1.0 (/home/wangji/installer/rust/bobo/smartPtr)Finished dev profile [unoptimized debuginfo] target(s) in 5.85sRunning target/debug/smartPtr Result: 10参考 第16章~创建线程
http://www.w-s-a.com/news/915436/

相关文章:

  • 松江移动网站建设成都app开发制作公司
  • 锦州做网站的公司百度seo搜索营销新视角
  • 做画册找什么网站海南建设工程股份有限公司网站
  • 网站机房建设有助于网站备案
  • 北辰苏州网站建设抖音代运营投诉平台
  • 安徽住房与城乡建设部网站如何新建站点
  • 企业网站开发的感想网站开发公司所需投入资源
  • 如何拿网站后台账号wordpress 电影下载站源码
  • 公司网站建设方案书安卓应用市场免费下载安装
  • phpmysql网站设计建设好一个网站需要
  • 自己做的网站能被别人看到吗idea怎么做网页
  • 燕莎网站建设互联网排名前十的公司2021
  • 微软云怎么做网站微商城和小程序区别
  • 哈尔滨建站的系统网站到首页排名
  • 运动网站开发的需求分析南通市住房和城乡建设局网站
  • 佘山做网站谷歌云做网站
  • 免费发布信息网站大全666做p2p网站费用
  • 北京 网站建设咨询顾问公司网络公司有几家
  • 设计类网站如何用ps做网站首页
  • 品牌网站建设的关键事项设计网有哪些
  • 网站没收录徐州建设工程审图中心网站
  • 网站建设记账做什么科目erp系统有哪些软件
  • 泰拳图片做网站用哪里有做空包网站的
  • 查外链网站重庆做网站微信的公司
  • 有没有外包活的网站如何做网站快捷键的元素
  • 公司网站赏析网站制作2019趋势
  • 企业进行网站建设的方式有( )推广引流违法吗
  • 按营销型网站要求重做网站 费用点金网站建设
  • 深圳做网站互联网服务
  • 网站sem托管wordpress安装无法连接数据库