欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

全網(wǎng)最全C++云存儲(chǔ)項(xiàng)目-支持注冊(cè)-登錄-分享文件-預(yù)覽視頻和圖片

項(xiàng)目預(yù)覽

視頻講解(源碼領(lǐng)取看視頻):https://www.bilibili.com/video/BV1XPfTY8EGD/

1 為什么是全網(wǎng)最全C++云存儲(chǔ)項(xiàng)目

  • 支持注冊(cè)登錄
  • 支持文件管理
  • 支持視頻預(yù)覽
  • 支持圖片預(yù)覽
  • 支持文件分享
  • 優(yōu)化了大文件上傳
  • 支持?jǐn)帱c(diǎn)下載

2 從這個(gè)項(xiàng)目你可以學(xué)到什么

這個(gè)項(xiàng)目包含的技術(shù)棧

2.1 C++ 11及以上語法的經(jīng)典應(yīng)用

當(dāng)前項(xiàng)目使用到的主要C++11特性。

2.1.1 智能指針

  • std::shared_ptr :共享所有權(quán)的智能指針
  • std::weak_ptr :弱引用,配合shared_ptr使用
  • std::unique_ptr :獨(dú)占所有權(quán)的智能指針
std::shared_ptr<Connection> conn(new Connection());
std::weak_ptr<Connection> weakConn = conn;

2.1.2 右值引用和移動(dòng)語義

  • 使用 && 表示右值引用
  • std::move() 將左值轉(zhuǎn)換為右值
  • 移動(dòng)構(gòu)造函數(shù)和移動(dòng)賦值運(yùn)算符
class Buffer {
Buffer(Buffer&& other) noexcept; // 移動(dòng)構(gòu)造函數(shù)
Buffer& operator=(Buffer&& other) noexcept; // 移動(dòng)賦值運(yùn)算符
};

2.1.3 Lambda表達(dá)式

  • 用于創(chuàng)建匿名函數(shù)對(duì)象
  • 常用于回調(diào)函數(shù)
auto callback = [](const TcpConnectionPtr& conn) {
// 處理連接
};

2.1.4 auto關(guān)鍵字

  • 自動(dòng)類型推導(dǎo)
  • 簡(jiǎn)化代碼,提高可讀性
autoresult=calculateResult();
autoit=container.begin();

2.1.5 nullptr

  • 替代NULL的空指針常量
  • 類型安全
void* ptr = nullptr;

2.1.6 范圍for循環(huán)

  • 簡(jiǎn)化容器遍歷
for (const auto& item : container) {
// 處理item
}

2.1.7 線程支持

  • std::thread :線程類
  • std::mutex :互斥量
  • std::condition_variable :條件變量
  • std::lock_guard 和 std::unique_lock :RAII鎖管理
std::mutex mtx;
std::lock_guard<std::mutex> lock(mtx);

2.1.8 原子操作

  • std::atomic :原子類型
  • 無鎖編程支持
std::atomic<int> counter{0};
counter++;

2.1.9 時(shí)間工具

  • std::chrono :時(shí)間庫
  • 高精度時(shí)間點(diǎn)和時(shí)間段
using namespace std::chrono; 
auto now = system_clock::now();

2.1.10 函數(shù)對(duì)象包裝器

  • std::function :通用函數(shù)包裝器
  • std::bind :函數(shù)適配器
std::function<void(const TcpConnectionPtr&)> callback; 

這些C++11特性在MyMuduo中的應(yīng)用:

1. 智能指針用于管理TCP連接和定時(shí)器等資源

2. 移動(dòng)語義用于優(yōu)化Buffer的數(shù)據(jù)傳輸

3. Lambda表達(dá)式用于注冊(cè)回調(diào)函數(shù)

4. 原子操作用于計(jì)數(shù)器和標(biāo)志位

5. 線程支持用于實(shí)現(xiàn)EventLoop和ThreadPool

2.2 線程+線程池封裝

  • Thread 基于pthread封裝線類
  • ThreadPool 基于Thread 封裝線程池

2.3 高性緩存/日志/定時(shí)器的設(shè)計(jì)

  • Buffer類 高性能緩存
  • AsyncLogging 高性能異步日志
  • Timer 高性能定時(shí)器

2.4 高性能C++網(wǎng)絡(luò)框架設(shè)計(jì)

支持多種網(wǎng)絡(luò)模型:

1. 單 epoll 模型

2. 單 epoll + 線程池模型

3. main reactor + sub reactor 模型

4. main reactor + sub reactor + 線程池模型

2.4.1 單 Reactor 模型 (test_reactor_single.cc)

  • 單個(gè) Reactor(EventLoop)線程負(fù)責(zé)所有的事件監(jiān)聽和處理
  • 所有的 IO 操作和業(yè)務(wù)處理都在同一個(gè)線程中完成
           main Thread (Reactor)
                   |
             EventLoop/Epoll
                   |
     --------------------------------
    |              |                |
Accept新連接 讀寫網(wǎng)絡(luò)數(shù)據(jù) 處理業(yè)務(wù)邏輯

2.4.2 單 Reactor + 線程池模型

  • 單個(gè) Reactor 線程處理所有的 IO 事件
  • 線程池處理耗時(shí)的業(yè)務(wù)邏輯
  • IO 和業(yè)務(wù)處理解耦
Main Thread (Reactor)      Thread Pool
     |                         |
EventLoop/Epoll          ----------------
     |                   |    |    |    |
IO Events            Worker Worker Worker Worker
     |                   |    |    |    |
Accept/Read/Write   Business Logic Processing

2.4.3 多Reactors 模型

  • 主 Reactor 只負(fù)責(zé)接收新連接
  • 多個(gè) Sub Reactor 負(fù)責(zé)處理 IO 事件
  • 通過多線程提高 IO 處理性能
             Main Reactor Thread
                     |
               Accept新連接
                     |
     -------------------------------
     |               |             |
Sub Reactor 1  Sub Reactor 2  Sub Reactor 3
     |               |             |
 IO Events     IO Events       IO Events

2.4.4 多Reactor + 線程池模型

  • 主 Reactor 負(fù)責(zé)接收新連接
  • 多個(gè) Sub Reactor 處理 IO 事件
  • 線程池處理業(yè)務(wù)邏輯
  • 最大程度的并發(fā)處理
Main Reactor Thread
|
Accept新連接
|
---------------------------------
| | |
Sub Reactor 1 Sub Reactor 2 Sub Reactor 3
| | |
IO Events IO Events IO Events
| | |
----------Thread Pool------------
| | | | |
Worker Worker Worker Worker Worker

2.5 高性能HTTP組件設(shè)計(jì)

優(yōu)化內(nèi)容:

  • 在muduo http框架上優(yōu)化大文件上傳。
  • 優(yōu)化文件斷點(diǎn)下載(支持range 下載指定范圍的數(shù)據(jù))
  • session權(quán)限校驗(yàn)

涉及的類文件:

  • HttpContext
  • HttpRequest
  • HttpResponse
  • HttpServer
  • FileUploadContext 處理文件上傳上下文
  • FileDownloadContext 處理文件下載上下文

2.6 數(shù)據(jù)庫操作

數(shù)據(jù)庫(用戶注冊(cè)/登錄,文件管理,分享文件管理等表的設(shè)計(jì))

  • users用戶表
  • sessions 保存用戶會(huì)話用于HTTP API校驗(yàn)
  • files 保存?zhèn)€人文件
  • file_shares 保存文件分享記錄
-- 刪除數(shù)據(jù)庫
DROP DATABASE file_manager;
-- 創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE IF NOT EXISTS file_manager DEFAULT CHARACTER SET utf8mb4 COLLATE
utf8mb4_unicode_ci;

USE file_manager;

-- 創(chuàng)建用戶表
CREATE TABLE IF NOT EXISTS users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(64) NOT NULL,
    email VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_username (username)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 創(chuàng)建會(huì)話表
CREATE TABLE IF NOT EXISTS sessions (
    id INT PRIMARY KEY AUTO_INCREMENT,
    session_id VARCHAR(32) NOT NULL UNIQUE,
    user_id INT NOT NULL,
    username VARCHAR(50) NOT NULL,
    expire_time TIMESTAMP NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_session_id (session_id),
    INDEX idx_user_id (user_id),
    INDEX idx_expire_time (expire_time),
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 創(chuàng)建文件表
CREATE TABLE IF NOT EXISTS files (
    id INT PRIMARY KEY AUTO_INCREMENT,
    filename VARCHAR(255) NOT NULL,
    original_filename VARCHAR(255) NOT NULL,
    file_size BIGINT UNSIGNED NOT NULL,
    file_type VARCHAR(50),
    user_id INT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_filename (filename),
    INDEX idx_user_id (user_id),
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 創(chuàng)建文件分享表
CREATE TABLE IF NOT EXISTS file_shares (
    id INT PRIMARY KEY AUTO_INCREMENT,
    file_id INT NOT NULL,
    owner_id INT NOT NULL,
    shared_with_id INT,
    share_type ENUM('private', 'public', 'protected', 'user') NOT NULL,
    share_code VARCHAR(32) NOT NULL,
    expire_time TIMESTAMP NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    extract_code VARCHAR(6),
    INDEX idx_file_id (file_id),
    INDEX idx_owner_id (owner_id),
    INDEX idx_shared_with_id (shared_with_id),
    INDEX idx_share_code (share_code),
    INDEX idx_expire_time (expire_time),
    FOREIGN KEY (file_id) REFERENCES files(id) ON DELETE CASCADE,
    FOREIGN KEY (owner_id) REFERENCES users(id) ON DELETE CASCADE,
    FOREIGN KEY (shared_with_id) REFERENCES users(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

3 把項(xiàng)目跑起來

3.1 導(dǎo)入數(shù)據(jù)庫

// 進(jìn)入項(xiàng)目目錄
cd lesson29_file_manager
// 使用用戶名 密碼導(dǎo)入數(shù)據(jù)庫
mysql -u username -ppassword < file_manager.sql

比如我username是root,password是123456,即是

mysql -u root -p123456 < file_manager.sql

然后登錄數(shù)據(jù)庫查看是否導(dǎo)入正常。

選擇數(shù)據(jù)庫

mysql> use file_manager;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

顯示當(dāng)前數(shù)據(jù)庫的表單

mysql> show tables;
+------------------------+
| Tables_in_file_manager |
+------------------------+
| file_shares |
| files |
| sessions |
| users |
+------------------------+
4 rows in set (0.00 sec)

3.2 編譯項(xiàng)目和運(yùn)行項(xiàng)目

cd lesson29_file_manager
mkdir build
cd build
cmake ..
make
運(yùn)行:
./bin/http_upload

4 學(xué)習(xí)這個(gè)項(xiàng)目需要哪些技術(shù)?;A(chǔ)

  • C++11及以上常用語言特性
  • C++ STL
  • Linux多線程編程
  • Linux網(wǎng)絡(luò)編程
  • Linux C++網(wǎng)絡(luò)框架實(shí)現(xiàn)
  • Linux Http協(xié)議
  • MySQL數(shù)據(jù)庫知識(shí)

5 項(xiàng)目特色

  • 大文件上傳處理
  • 支持文件斷點(diǎn)下載

6 附錄

將MP4文件的 moov 原子(metadata box)移動(dòng)到文件頭部(這有助于視頻流式傳輸和快速播放),可以使

用FFmpeg的 -movflags faststart 選項(xiàng)。

ffmpeg -i input.mp4 -movflags faststart -c copy output.mp4

-movflags faststart

ffmpeg -i C++Linux項(xiàng)目推薦-進(jìn)階版Webserver-Web聊天室+MySQL+Redis.mp4 -movflags faststart -c

copy C++Linux項(xiàng)目推薦-進(jìn)階版Webserver-Web聊天室+MySQL+Redis2.mp4

#校招過來人的經(jīng)驗(yàn)分享##簡(jiǎn)歷中的項(xiàng)目經(jīng)歷要怎么寫##校招##后端開發(fā)##C++#
全部評(píng)論
mark
點(diǎn)贊 回復(fù) 分享
發(fā)布于 04-30 19:24 安徽
mark
點(diǎn)贊 回復(fù) 分享
發(fā)布于 04-30 09:52 廣東

相關(guān)推薦

點(diǎn)贊 評(píng)論 收藏
分享
05-09 22:10
已編輯
重慶大學(xué) C++
&nbsp;&nbsp;后續(xù)更新一下,二面之后通知沒hc了然后另外一個(gè)部門打電話約三面(4月25號(hào)),接著隔一天又被另一個(gè)部門通知加面到第四面(4月28號(hào)),然后29號(hào),30號(hào)沒消息我以為要掛了或者可能繼續(xù)第五面,接著勞動(dòng)節(jié)之后竟然通知過了,然后當(dāng)天offer,真是一波三折。&nbsp;&nbsp;最后打算接了這個(gè)offer,蝦皮offer不打算等了(據(jù)說蝦皮給的很多?)。&nbsp;&nbsp;最后總結(jié)一下,bg末九+一年acm競(jìng)賽破銅爛鐵,項(xiàng)目一個(gè)cs144和webserver(學(xué)了一下mysql但是沒人問過?疑似白學(xué)了)。給還在尋找實(shí)習(xí)的同學(xué)留下一些經(jīng)驗(yàn)吧,首先簡(jiǎn)歷一定要突出重點(diǎn),我是按照&nbsp;&nbsp;競(jìng)賽+項(xiàng)目+技術(shù)棧的順序?qū)懙模ㄗh像自我評(píng)價(jià)這樣湊字?jǐn)?shù)的就別寫了。然后就是簡(jiǎn)歷上寫的東西自己一定要掌握透徹,建議不是很熟悉的就別寫了。然后就是可以根據(jù)項(xiàng)目上寫的每一條自己給自己提幾個(gè)問(我遇到過幾個(gè)面試官每條挨著問的),強(qiáng)烈建議仔仔細(xì)細(xì)看一下項(xiàng)目源碼,搞清楚每個(gè)細(xì)節(jié)。然后就是建議爛大街的項(xiàng)目最好加點(diǎn)自己的新東西,如果項(xiàng)目代碼上不會(huì)寫,只需要會(huì)說就行。然后其他八股跟小林coding就好了,多看幾遍就好了(尤其計(jì)網(wǎng)仔細(xì)研究一下,操作系統(tǒng)倒是問的很少,進(jìn)程和虛擬內(nèi)存那塊可以仔細(xì)看看)。最后大家祝大家暑期順利。附上offer圖。---------------------------------------------------------再更:蝦皮oc,給得很多。#好未來求職進(jìn)展匯總##??虯I配圖神器#
點(diǎn)贊 評(píng)論 收藏
分享
評(píng)論
點(diǎn)贊
4
分享

創(chuàng)作者周榜

更多
正在熱議
更多
# 面試問題記錄 #
60811次瀏覽 873人參與
# 硬件人的簡(jiǎn)歷怎么寫 #
254311次瀏覽 2884人參與
# 京東TGT #
47553次瀏覽 174人參與
# 你遇到過哪些神仙同事 #
71724次瀏覽 641人參與
# 我的2024小目標(biāo) #
58090次瀏覽 390人參與
# 工作中,你有沒有遇到非常愛罵人的領(lǐng)導(dǎo)? #
17006次瀏覽 126人參與
# 百度工作體驗(yàn) #
204784次瀏覽 1907人參與
# 實(shí)習(xí)生應(yīng)該準(zhǔn)時(shí)下班嗎 #
201617次瀏覽 1314人參與
# 上班到公司第一件事做什么? #
37865次瀏覽 347人參與
# 國企和大廠硬件兄弟怎么選? #
120105次瀏覽 1656人參與
# 工作一周年分享 #
19185次瀏覽 111人參與
# 沒有合適的工作,你會(huì)先找個(gè)干著,還是考公考研 #
104390次瀏覽 1076人參與
# 面試吐槽bot #
14211次瀏覽 87人參與
# 互聯(lián)網(wǎng)行業(yè)現(xiàn)在還值得去嗎 #
6379次瀏覽 42人參與
# 面試經(jīng)驗(yàn)談 #
39051次瀏覽 509人參與
# 拼多多工作體驗(yàn) #
16707次瀏覽 152人參與
# 入職第五天,你被拉進(jìn)了幾個(gè)工作群 #
17956次瀏覽 80人參與
# 假如我穿越到了媽媽的18歲 #
6308次瀏覽 43人參與
# 國企vs私企,你更想去? #
217556次瀏覽 2072人參與
# 你們的畢業(yè)論文什么進(jìn)度了 #
999333次瀏覽 9398人參與
# 機(jī)械人,你的第一份感謝信是誰給的 #
26817次瀏覽 296人參與
??途W(wǎng)
??推髽I(yè)服務(wù)