File tree Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ # 此处存放作业
2
+
3
+ - ** 文件名** :` id ` + 日期数字。
4
+
5
+ ` id ` :随意。
6
+
7
+ 日期数字:` 8 ` 位数字,例如现在是 2024 年 7 月 31 日,那么日期数字则为:` 20240731 `
8
+
9
+ - ** 后缀名** :根据作业情况,随意。如果是普通代码,自然是 ` .cpp ` 后缀。
10
+
11
+ ---
12
+
13
+ 1 . 线程池作业存放在 [ thread_pool] ( ./thread_pool ) 文件夹中。
Original file line number Diff line number Diff line change
1
+ [ TOC]
2
+
1
3
# 线程池
2
4
3
5
## 前言
@@ -494,3 +496,22 @@ sum: 90
494
496
- ** ` submit() ` ** :将任务提交到任务队列,并返回一个` std::future ` 对象用于获取任务结果。
495
497
496
498
- ** ` start() ` ** :启动线程池,创建并启动指定数量的线程。
499
+
500
+ ---
501
+
502
+ 当然,你可能还希望我们的线程池具备更多功能或改进,比如控制任务优先级、设置最大线程数量、返回当前活跃线程数等。此外,异常处理也是一个值得考虑的方面。
503
+
504
+ 有些功能实现起来非常简单,而有些则需要更多的思考和设计。不过,这些优化超出了本次讲解的范围。如果有兴趣,可以尝试自行优化我们提供的线程池实现。我们给出的线程池实现简单完善且直观,用来学习再好不过。
505
+
506
+ ## 总结
507
+
508
+ 在本章中我们详细的介绍了:
509
+
510
+ - 线程池的基本概念。
511
+
512
+ - 市面上常见的线程池的设计与使用, ` boost::asio::thread_pool ` 、` QThreadPool ` 。
513
+ - 实现一个简易的线程池。
514
+
515
+ 总体而言,内容并不构成太大的难度。
516
+
517
+ ** 课后作业:** 自己实现一个线程池,可以参考我们给出的线程池实现增加功能,提交到 ` homework ` 文件夹中。
You can’t perform that action at this time.
0 commit comments