Skip to content
Open
Changes from 1 commit
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
7529ae3
support bazel complie this project and format code.
Mar 29, 2023
e9f97ef
Merge pull request #278 from Light-City/feature/compile
Light-City Mar 30, 2023
6b1ed31
fix readme
Light-City Mar 30, 2023
b25aa16
Update README.md
Light-City Mar 30, 2023
2fa0db5
Update README.md
Light-City Mar 30, 2023
94bf661
Update README.md
Light-City Apr 1, 2023
7428f84
Update README.md
Light-City Apr 1, 2023
ff27ec5
Update README.md
Light-City Apr 7, 2023
af47244
Update README.md
Light-City Apr 7, 2023
a68f0c6
Update README.md
Light-City Apr 9, 2023
07ee0c8
add docker
Light-City Apr 24, 2023
2623a8e
Update README.md
Light-City Apr 25, 2023
812a653
Update README.md
Light-City Apr 25, 2023
2403776
update video b site
Light-City Apr 25, 2023
c5d6b33
add site
Light-City Apr 26, 2023
483de0d
remote b site
Light-City Apr 26, 2023
be437a1
fix format
Light-City Apr 26, 2023
dbbfb7c
fix #292: fix typo error '修该' to '修改'
laialaodi Apr 25, 2023
93e42fe
Update README.md
bylin0829 Apr 13, 2023
59fc284
fix #284,修改const指针中的错误内容并增加样例
laialaodi Apr 25, 2023
93e8e66
add proj readme
Light-City Jul 1, 2023
6d4b682
add hashtable
Light-City Jul 18, 2023
a617404
fix docs
Light-City Jul 21, 2023
bf8ac71
add proj
Light-City Jul 21, 2023
3c77b89
Update README.md
Light-City Nov 29, 2023
961d504
Update README.md
Light-City Jan 29, 2024
29e89bb
Update README.md
Light-City Mar 2, 2024
2af63d2
Update README.md
Light-City Mar 2, 2024
3939142
Update README.md
Light-City Mar 2, 2024
2f880f1
Update README.md
Light-City Mar 6, 2024
8dd89c3
Update README.md
Light-City Mar 6, 2024
0afdf20
Update README.md
Light-City Mar 10, 2024
b76f3dc
fix english style and code translate
laialaodi Jul 24, 2023
e07bcc2
fix typo error
yangliyl Oct 19, 2023
9f99478
Fix type error in README_EN.md
laialaodi Jul 25, 2023
077cec7
fix: 修改了 c++11 variadic 特性相关代码中 BUILD 脚本注释的错误
Nickel-Angel Feb 18, 2024
8daa2ba
fix: 单例模式静态局部变量代码缺陷
L-Super Feb 17, 2024
9036ee2
fix deleteLine
y0sh1ne Dec 6, 2023
a22d3d0
fix deleteLine
y0sh1ne Dec 6, 2023
09802c4
chore: fix some typos
shuangcui Mar 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add proj
  • Loading branch information
Light-City committed Jul 21, 2023
commit bf8ac71ae29b3904c5d1240e11fc84bd87772bac
88 changes: 70 additions & 18 deletions proj/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,74 @@
- [重磅项目](#重磅项目)
- [学习方式](#学习方式)
- [HOT: 新增项目](#hot-新增项目)
- [线程池](#线程池)
- [内存池](#内存池)
- [手把手100行写一个简易版Mutex](#手把手100行写一个简易版mutex)
- [内容](#内容)
- [涉及内容](#涉及内容)
- [七种方式玩转condition\_variable](#七种方式玩转condition_variable)
- [内容](#内容-1)
- [涉及内容](#涉及内容-1)
- [duckdb + levledb](#duckdb--levledb)
- [C++那些事十日狂练升级版](#c那些事十日狂练升级版)


# 重磅项目

## 1.手把手100行写一个简易版Mutex
### 1.1 内容
## 学习方式

深入学习以下项目,可扫码加入知识星球或添加个人wx: gcxzhang,备注: 加入星球


<img src="../img/cpp.jpg" alt="知识星球" width="400" height="300">


## HOT: 新增项目

### 线程池

这个项目的线程池是基于Apache Arrow项目的衍生版本。我们将Arrow项目中复杂的核心结构——线程池——完全剥离出来,形成了这个独立的项目。由于原>始的线程池与Arrow项目本身的工具有深度依赖关系,因此我们在这个项目中对线程池进行了一些深度移除和改造,以保持与原始Arrow线程池的基础功能
一致。一些改动包括:

- 将Arrow的Future替换为std::future
- 将Arrow的Result替换为std::optional
- 重构了Submit接口,使用promise进行实现

通过这些改动,我们的目标是:

- 使线程池更方便地作为其他项目的依赖库使用
- 提供简单的方式来引入本项目的so库和头文件,以使用线程池功能

此外,这个项目还可以作为深入学习线程池设计与实现的资源。我们欢迎您探索并使用这个经过精心改进的线程池。

https://github.com/Light-City/light-thread-pool

### 内存池

这个项目的内存池是基于Apache Arrow项目的衍生版本。我们将Arrow项目中复杂的核心结构——内存池——完全剥离出来,形成了这个独立的项目。由于原>始的内存池与Arrow项目本身的工具有深度依赖关系,因此我们在这个项目中对内存池进行了一些深度移除和改造,以保持与原始Arrow内存池的基础功能
一致。一些改动包括:

- 分离allocator与memory_pool
- 移除不需要的LoggingMemoryPool、ProxyMemoryPool
- 移除jemalloc等第三方malloc库,未来可以支持

通过这些改动,我们的目标是:

- 使代码更加精简
- 使内存池更方便地作为其他项目的依赖库使用
提供简单的方式来引入本项目的so库和头文件,以使用内存池功能
此外,这个项目还可以作为深入学习内存池设计与实现的资源。我们欢迎您探索并使用这个经过精心改进的内存池

https://github.com/Light-City/light-memory-pool

## 手把手100行写一个简易版Mutex
### 内容

项目名称:简易互斥锁(SimpleMutex)

项目描述:简易互斥锁(SimpleMutex)是一个基于原子变量和信号量的互斥锁实现,用于保护并管理多线程环境下的共享资源访问。它提供了一种简单而有效的方式来确保在多线程并发访问时,只有一个线程可以同时访问受保护的资源,从而避免数据竞争和不一致性。基于 POSIX 标准的信号量库实现,包含 Catch2 单元测试,附带了基于 Catch2 框架的单元测试,用于验证互斥锁的正确性和稳定性,使用bazel编译,google编码规范。

### 1.2 涉及内容
### 涉及内容

其中涉及C++知识(RAII、信号量、lock_guard、线程安全编程),还能学习以下内容:

Expand All @@ -25,9 +86,9 @@

7.RAII(Resource Acquisition Is Initialization)原则:了解如何使用对象的生命周期来管理资源的获取和释放,确保资源的正确获取和释放,避免资源泄漏。

## 2.七种方式玩转condition_variable
## 七种方式玩转condition_variable

### 2.1 内容
### 内容

1.CPU轮询等待版单生产者单消费者:

Expand Down Expand Up @@ -57,7 +118,7 @@

在这个版本中,引入了Lambda回调函数,用于优雅地停止并发处理。可以通过调用回调函数来停止生产者和消费者的处理,并进行清理工作。

### 2.2 涉及内容
### 涉及内容

1.多线程和并发编程:通过这些版本的描述,您可以了解到如何在C++中使用多线程和并发编程来处理并行任务。您将学习如何创建线程、控制线程的执行、线程间的数据共享和同步等。

Expand All @@ -69,21 +130,12 @@

5.condition_variable、mutex、unique_lock

## 3.duckdb + levledb
## duckdb + levledb

leveldb 源码剖析已更毕

duckdb 持续更新

## 4.C++那些事十日狂练升级版

还差2日可更完

## 5.学习方式

1. 如果想学习以上内容,可扫码加入知识星球或添加个人wx: gcxzhang,备注: 星球

2. 学习,也提供学习指导,求职建议等咨询~

<img src="../img/cpp.jpg" alt="知识星球" width="400" height="300">
## C++那些事十日狂练升级版

已更毕