網站首頁 編程語言 正文
故事背景
透著紗的窗外的陽光, 又是一個星期一.
慢慢來
一看時間, 還早, 那么蹦跶起來
- 穿衣
- 刷牙
- 洗臉
用代碼來說的話, 應該是這樣:
// Program.cs using System; using System.Diagnostics; using System.Threading; namespace ConsoleApp1 { class Program { static void Main(string[] args) { Console.WriteLine("早起三件事開始..."); Stopwatch sw = new Stopwatch(); sw.Start(); Dress(); BrushTeeth(); WashFace(); sw.Stop(); Console.WriteLine($"...早起三件事完成, 總耗時 {sw.Elapsed.Seconds} 秒"); Console.ReadKey(); } /// <summary> /// 穿衣 /// </summary> static void Dress() { Console.WriteLine($"穿衣開始..."); Stopwatch sw = new Stopwatch(); sw.Start(); Thread.Sleep(timeout: TimeSpan.FromSeconds(value: 1)); sw.Stop(); Console.WriteLine($"...穿衣完成, 耗時 {sw.Elapsed.Seconds} 秒"); } /// <summary> /// 刷牙 /// </summary> static void BrushTeeth() { Console.WriteLine($"刷牙開始..."); Stopwatch sw = new Stopwatch(); sw.Start(); Thread.Sleep(timeout: TimeSpan.FromSeconds(value: 3)); sw.Stop(); Console.WriteLine($"...刷牙完成, 耗時 {sw.Elapsed.Seconds} 秒"); } /// <summary> /// 洗臉 /// </summary> static void WashFace() { Console.WriteLine($"洗臉開始..."); Stopwatch sw = new Stopwatch(); sw.Start(); Thread.Sleep(timeout: TimeSpan.FromSeconds(value: 5)); sw.Stop(); Console.WriteLine($"...系列完成, 耗時 {sw.Elapsed.Seconds} 秒"); } } }
運行之后, 等待一會, 會看到如下輸出:
早起三件事開始...
穿衣開始...
...穿衣完成, 耗時 1 秒
刷牙開始...
...刷牙完成, 耗時 3 秒
洗臉開始...
...系列完成, 耗時 5 秒
...早起三件事完成, 總耗時 9 秒
一件一件事慢慢來, 總耗時 9 秒...
趕時間
一看時間, 哎呦我去, 快遲到了, 穿衣 & 刷牙 & 洗臉一起來吧...別問我現實中怎么實現的
總而言之代碼是這樣滴:
// Program.cs using System; using System.Diagnostics; using System.Threading; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { static void Main(string[] args) { Console.WriteLine("早起三件事開始..."); Stopwatch sw = new Stopwatch(); sw.Start(); Task dressTask = Task.Factory.StartNew(action: Dress); Task brushTeethTask = Task.Factory.StartNew(action: BrushTeeth); Task washFaceTask = Task.Factory.StartNew(action: WashFace); Task.WaitAll(dressTask, brushTeethTask, washFaceTask); sw.Stop(); Console.WriteLine($"...早起三件事完成, 總耗時 {sw.Elapsed.Seconds} 秒"); Console.ReadKey(); } /// <summary> /// 穿衣 /// </summary> static void Dress() { Console.WriteLine($"穿衣開始..."); Stopwatch sw = new Stopwatch(); sw.Start(); Thread.Sleep(timeout: TimeSpan.FromSeconds(value: 1)); sw.Stop(); Console.WriteLine($"...穿衣完成, 耗時 {sw.Elapsed.Seconds} 秒"); } /// <summary> /// 刷牙 /// </summary> static void BrushTeeth() { Console.WriteLine($"刷牙開始..."); Stopwatch sw = new Stopwatch(); sw.Start(); Thread.Sleep(timeout: TimeSpan.FromSeconds(value: 3)); sw.Stop(); Console.WriteLine($"...刷牙完成, 耗時 {sw.Elapsed.Seconds} 秒"); } /// <summary> /// 洗臉 /// </summary> static void WashFace() { Console.WriteLine($"洗臉開始..."); Stopwatch sw = new Stopwatch(); sw.Start(); Thread.Sleep(timeout: TimeSpan.FromSeconds(value: 5)); sw.Stop(); Console.WriteLine($"...系列完成, 耗時 {sw.Elapsed.Seconds} 秒"); } } }
啟動運行之后, 等待一會, 你應該會看到如下輸出:
早起三件事開始...
刷牙開始...
洗臉開始...
穿衣開始...
...穿衣完成, 耗時 1 秒
...刷牙完成, 耗時 3 秒
...系列完成, 耗時 5 秒
...早起三件事完成, 總耗時 5 秒
可以看到, 幾件事一起干了, 總耗時只用了 5 秒.
總結一下
幾件事一起干(并行), 比一件一件事慢慢來
- 要省時間, 但是要多寫點代碼, 更耗體力.
- 可以使用?
Task
?來輕松實現并行操作. - ...
原文鏈接:https://www.cnblogs.com/taadis/p/11112929.html
相關推薦
- 2022-11-27 網站https訪問是443端口還是433端口_服務器其它
- 2023-01-07 C++中function的實現原理詳解_C 語言
- 2021-12-08 .net?core?api接口JWT方式認證Token_實用技巧
- 2022-03-23 .Net?Core微服務網關Ocelot基礎介紹及集成_自學過程
- 2022-04-28 postman測試接口各種類型傳值的實現_相關技巧
- 2022-05-27 C++?二叉樹的實現超詳細解析_C 語言
- 2022-06-29 Python自定義模塊的創建與使用_python
- 2022-11-06 python?pandas?數據排序的幾種常用方法_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支