国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站開發(fā)中的抓包工具網(wǎng)站代運(yùn)營(yíng)多少錢一個(gè)月

網(wǎng)站開發(fā)中的抓包工具,網(wǎng)站代運(yùn)營(yíng)多少錢一個(gè)月,wap網(wǎng)站制作方案,oracle數(shù)據(jù)庫網(wǎng)站開發(fā)出處:B站碼出名企路 個(gè)人筆記:因?yàn)槭歉鴅站的教學(xué)視頻以及文檔初步學(xué)習(xí),可能存在諸多的理解有誤,對(duì)大家僅供借鑒,參考,然后是B站up陽哥的視頻,我是跟著他學(xué)。大家有興趣的可以到b站搜索。加油…

出處:B站碼出名企路

個(gè)人筆記:因?yàn)槭歉鴅站的教學(xué)視頻以及文檔初步學(xué)習(xí),可能存在諸多的理解有誤,對(duì)大家僅供借鑒,參考,然后是B站up陽哥的視頻,我是跟著他學(xué)。大家有興趣的可以到b站搜索。加油,一起學(xué)習(xí)。我的問題,大家如果看見,希望可以提出指正,謝謝大家。

應(yīng)用場(chǎng)景

多線程的應(yīng)用場(chǎng)景非常多,常見的有:

  1. 網(wǎng)絡(luò)通信:在網(wǎng)絡(luò)通信應(yīng)用中,一般需要同時(shí)處理多個(gè)請(qǐng)求,如果使用單線程模式,會(huì)阻塞其他請(qǐng)求,造成性 能瓶頸,因此使用多線程可以提高并發(fā)處理能力。

  2. 數(shù)據(jù)庫操作:在數(shù)據(jù)庫操作中,有時(shí)需要同時(shí)對(duì)多個(gè)數(shù)據(jù)表進(jìn)行操作,使用多線程可以提高處理效率。

  3. 圖像處理:在圖像處理應(yīng)用中,需要對(duì)多個(gè)圖像進(jìn)行處理,在單線程模式下,處理速度會(huì)很慢,使用多線程可 以提高處理速度。

  4. 游戲開發(fā):在游戲開發(fā)中,常常需要同時(shí)處理多個(gè)任務(wù),比如處理游戲畫面、物理效果、聲音效果等,使用多 線程可以提高游戲的運(yùn)行速度和流暢度。

  5. 并行計(jì)算:在科學(xué)計(jì)算領(lǐng)域中,常常需要對(duì)大量數(shù)據(jù)進(jìn)行處理和計(jì)算,使用多線程可以將計(jì)算任務(wù)劃分到多個(gè) 線程中進(jìn)行,從而提高計(jì)算速度。

總之,多線程在提高程序性能、響應(yīng)性和資源利用率方面有著廣泛的應(yīng)用。然而,需要注意在多線程編程中處理線程同步、共享數(shù)據(jù)等問題,以確保程序的正確性和穩(wěn)定性。

圖解結(jié)構(gòu)

模塊拆解

第一步:StateSubmitor耗時(shí)內(nèi)容處理類

此處并沒有很多具體實(shí)現(xiàn),因?yàn)橐Y(jié)合業(yè)務(wù)。比如耗時(shí)處理邏輯

  class StateSubmitor    {public:explicit StateSubmitor(const std::string& str);~StateSubmitor();//submit: 提交到隊(duì)列中//const std::string& content 內(nèi)容,包括海量數(shù)據(jù)void submit(const std::string& content);//content可任意//flush: 將隊(duì)列中的所有狀態(tài)信息發(fā)往遠(yuǎn)程收集端//具體的業(yè)務(wù)邏輯void flush();private:StateSubmitor(const StateSubmitor&) = delete;StateSubmitor& operator=(const StateSubmitor&) = delete;};
    void StateSubmitor::submit(const std::string& content){/*@ 對(duì) content的耗時(shí)處理邏輯*/}
第二步:NodeMonitor線程啟動(dòng)類
//節(jié)點(diǎn)監(jiān)控, 監(jiān)控任務(wù)的發(fā)生, 業(yè)務(wù)的產(chǎn)生. 多線程同步等控制邏輯的封裝class NodeMonitor{public:~NodeMonitor();static NodeMonitor* instance();void start();void shutdown();bool init();private:NodeMonitor();NodeMonitor(const NodeMonitor&) = delete;NodeMonitor& operator=(const NodeMonitor&) = delete;void stateInfo(const std::string& strs);void ThreadFunc();                         //消費(fèi)者線程入口函數(shù)bool shutdown_;                            //開關(guān)   std::mutex mutex_;                         std::thread thread_;                       //消費(fèi)者線程std::condition_variable cond_;//queuestd::queue<std::string> task_queue_;       //任務(wù)隊(duì)列std::unique_ptr<StateSubmitor> submitor_;  //unique_ptr管理submitor對(duì)象};}

具體實(shí)現(xiàn),這里才是多線程同步互斥的重點(diǎn)部分,核心,利用任務(wù)隊(duì)列做緩沖容器,解耦合。使得生產(chǎn)者線程和消費(fèi)者線程之間的耦合度降低,生產(chǎn)者只管將任務(wù)放入任務(wù)隊(duì)列,然后即可返回,無需等待消費(fèi)者處理。消費(fèi)者只管從任務(wù)隊(duì)列中拿取任務(wù)處理。大大提高效率。通過緩存大大減低了生產(chǎn)者和消費(fèi)者之間的耦合程度。

生活場(chǎng)景:快遞驛站,快遞小哥就是生產(chǎn)者,我們就是消費(fèi)者??爝f驛站就是容器隊(duì)列。

 //析構(gòu)一般獨(dú)立一個(gè)函數(shù)NodeMonitor::~NodeMonitor(){this->shutdown();//做資源釋放等等操作}//創(chuàng)建線程安全的單例//call_once 確保多線程下僅僅創(chuàng)建一個(gè)NodeMonitor對(duì)象NodeMonitor* NodeMonitor::instance(){static NodeMonitor* instance = nullptr;static std::once_flag flag;  std::call_once(flag, [&]{instance = new (std::nothrow) NodeMonitor();});return instance; }//線程啟動(dòng)void NodeMonitor::start(){//創(chuàng)建消費(fèi)者thread_ = std::thread(&NodeMonitor::ThreadFunc, this);//啟動(dòng)生產(chǎn)者if (!init()){return;}}//生產(chǎn)者函數(shù)bool NodeMonitor::init(){submitor_.reset(new StateSubmitor("lyy")); //創(chuàng)建submitor/*@ 不斷地填充stateInfo@ 如果是實(shí)際應(yīng)用場(chǎng)景可能會(huì)采取輪詢, 或者是event事件觸發(fā), 此處陽哥按照最簡(jiǎn)單的塞入文本信息作為事件(任務(wù))*/while (true){stateInfo("lxk");}return true;}//填入需要的信息 <=> push任務(wù)void NodeMonitor::stateInfo(const std::string& strs){std::unique_lock<std::mutex> lock(mutex_);task_queue_.push(strs); //生產(chǎn), 塞入任務(wù)cond_.notify_one();     //通知消費(fèi)}//線程銷毀void NodeMonitor::shutdown(){std::unique_lock<std::mutex> lock(mutex_);shutdown_ = true;cond_.notify_all();if (thread_.joinable()){thread_.join();}}//消費(fèi)者函數(shù)void NodeMonitor::ThreadFunc(){while (!shutdown_){std::unique_lock<std::mutex> lock(mutex_);cond_.wait(lock, [this]{return shutdown_ || !task_queue_.empty();});if (shutdown_){break;}std::string str = task_queue_.front();task_queue_.pop();lock.unlock();submitor_->submit(str);//提交狀態(tài)信息}}

具體案例

消息隊(duì)列作業(yè)實(shí)現(xiàn)

#include <iostream>
#include <queue>
#include <mutex>
#include <thread>
#include <memory>
#include <condition_variable>
#include <string>
#include <chrono>namespace XX
{class MessageQueue {//封裝消息隊(duì)列類public:void push(const std::string& message); std::string pop(); bool empty();private:std::mutex mutex_; //互斥鎖, 保障互斥操作std::condition_variable cond_; //通知, 保障同步std::queue<std::string> msg_queue_;  //容器};class StateSubmitor {//消息處理類, 業(yè)務(wù)處理, 管理消息隊(duì)列public:explicit StateSubmitor(MessageQueue& msg_queue);~StateSubmitor();void submit(const std::string& content); //提交狀態(tài)信息并將其添加到隊(duì)列中void flush();  //flush: 將隊(duì)列中的所有狀態(tài)信息發(fā)往遠(yuǎn)程收集端, 清空處理所有消息.private:StateSubmitor(const StateSubmitor &) = delete;StateSubmitor &operator=(const StateSubmitor &) = delete;private:MessageQueue& msg_queue_;  //消息隊(duì)列};// 節(jié)點(diǎn)監(jiān)控, 監(jiān)控任務(wù)的發(fā)生, 業(yè)務(wù)的產(chǎn)生. 多線程同步等控制邏輯的封裝class NodeMonitor {public:~NodeMonitor();static NodeMonitor *instance();void start();void shutdown();bool init();private:NodeMonitor();void ProducerThreadFunc(); //線程函數(shù)void ConsumerThreadFunc(); //線程函數(shù)NodeMonitor(const NodeMonitor &) = delete;NodeMonitor &operator=(const NodeMonitor &) = delete;private:std::thread producer_thread_; //生產(chǎn)者線程,不停的往消息隊(duì)列塞入監(jiān)控到的用戶狀態(tài)信息消息.static int count_;std::unique_ptr<StateSubmitor> submitor_;MessageQueue msg_queue_; //消息隊(duì)列std::thread consumer_thread_;//消費(fèi)者線程, 不停的從消息隊(duì)列中抽出消息進(jìn)行處理bool shutdown_;              //開關(guān)};
}namespace XX {int NodeMonitor::count_ = 0;//初始化void MessageQueue::push(const std::string& message) {std::unique_lock<std::mutex> lock(mutex_);msg_queue_.push(message);//塞入消息cond_.notify_one();//通知消費(fèi)}std::string MessageQueue::pop() {std::unique_lock<std::mutex> lock(mutex_);cond_.wait(lock, [this]{//等待消息到來return !empty();});std::string msg = msg_queue_.front();//拿到消息msg_queue_.pop();return msg;}bool MessageQueue::empty() {return msg_queue_.empty();}StateSubmitor::StateSubmitor(MessageQueue& msg_queue): msg_queue_(msg_queue) {}  void StateSubmitor::submit(const std::string& content) {//提交狀態(tài)信息消息的業(yè)務(wù)操作std::cout << "消息為: " << content << std::endl;//將業(yè)務(wù)狀態(tài)消息push到消息隊(duì)列中msg_queue_.push(content);}void StateSubmitor::flush() {//清空所有消息}StateSubmitor::~StateSubmitor() {this->flush();}NodeMonitor::NodeMonitor():shutdown_(false){}NodeMonitor::~NodeMonitor(){this->shutdown();//釋放資源...操作}void NodeMonitor::ProducerThreadFunc() {while (!shutdown_) { //不斷生產(chǎn)std::this_thread::sleep_for(std::chrono::milliseconds(3000));std::string msg = "消息";msg += std::to_string(count_);count_ ++;submitor_->submit(msg);}}NodeMonitor* NodeMonitor::instance(){static NodeMonitor* instance = nullptr;static std::once_flag flag;  std::call_once(flag, [&]{instance = new (std::nothrow) NodeMonitor();});return instance; }void NodeMonitor::ConsumerThreadFunc() {while (!shutdown_) { //不斷消費(fèi)std::this_thread::sleep_for(std::chrono::milliseconds(2000));std::string msg = msg_queue_.pop();//彈出一條消息std::cout << "處理了: " << msg << std::endl;}}void NodeMonitor::start() {init();}void NodeMonitor::shutdown() {shutdown_ = true;}bool NodeMonitor::init() {submitor_.reset(new StateSubmitor(msg_queue_)); //創(chuàng)建submitor//創(chuàng)建生產(chǎn)者,消費(fèi)者線程并且joinproducer_thread_ = std::thread(&NodeMonitor::ProducerThreadFunc, this);consumer_thread_ = std::thread(&NodeMonitor::ConsumerThreadFunc, this);producer_thread_.join();consumer_thread_.join();return true;}
}int main() {XX::NodeMonitor::instance()->start();return 0;
}
http://m.aloenet.com.cn/news/32214.html

相關(guān)文章:

  • 氣象服務(wù)網(wǎng)站建設(shè)計(jì)算機(jī)培訓(xùn)
  • 網(wǎng)站開發(fā)和桌面開發(fā)哪個(gè)難百度搜索熱詞查詢
  • 視頻網(wǎng)站開發(fā)前景創(chuàng)建網(wǎng)站的流程
  • 東莞建站網(wǎng)站模板站長(zhǎng)查詢工具
  • 做視頻網(wǎng)站需要多少帶寬優(yōu)化網(wǎng)站標(biāo)題名詞解釋
  • 寧波網(wǎng)站建設(shè)論壇日喀則網(wǎng)站seo
  • 德州手機(jī)網(wǎng)站建設(shè)費(fèi)用網(wǎng)絡(luò)推廣的方式有哪些
  • 邯鄲市網(wǎng)絡(luò)建站百度百度一下就知道
  • 我是做性視頻網(wǎng)站懷化seo推廣
  • 深圳網(wǎng)站建設(shè)公司哪家可以建app企業(yè)網(wǎng)絡(luò)營(yíng)銷策劃方案范文
  • 有沒有找人做標(biāo)書的網(wǎng)站寧波網(wǎng)絡(luò)營(yíng)銷公司有哪些
  • 垂直+網(wǎng)站開發(fā)西安seo公司哪家好
  • 雜志網(wǎng)站建設(shè)方案優(yōu)化大師免安裝版
  • 東莞網(wǎng)站優(yōu)化推廣方案四川整站優(yōu)化關(guān)鍵詞排名
  • 企業(yè)網(wǎng)站系統(tǒng)seo行業(yè)
  • 免費(fèi)自己制作網(wǎng)站方法日本站外推廣網(wǎng)站
  • 朝陽網(wǎng)站建設(shè) 慈云寺網(wǎng)絡(luò)營(yíng)銷推廣方案模板
  • 龍巖網(wǎng)站設(shè)計(jì)較好的公司上海今天最新新聞10條
  • 動(dòng)漫網(wǎng)站開發(fā)需求分析本周新聞熱點(diǎn)
  • 小語種網(wǎng)站寧德seo培訓(xùn)
  • 青海省住房和城鄉(xiāng)建設(shè)廳門戶網(wǎng)站深圳做網(wǎng)站
  • 旬陽做網(wǎng)站湖南seo快速排名
  • 網(wǎng)站前端設(shè)計(jì)網(wǎng)絡(luò)營(yíng)銷案例分析報(bào)告
  • 福州網(wǎng)站制作案例石家莊百度快照優(yōu)化排名
  • 聊天app開發(fā)源碼搜索引擎優(yōu)化seo專員
  • 國(guó)外域名查詢網(wǎng)站2021年10月新聞?wù)?/a>
  • 屬于網(wǎng)頁制作平臺(tái)蘭州seo優(yōu)化
  • 合肥網(wǎng)站關(guān)鍵詞好網(wǎng)站
  • 3g網(wǎng)站開發(fā)怎么在百度上投放廣告
  • 動(dòng)態(tài)網(wǎng)站開發(fā)語言優(yōu)勢(shì)需要留電話號(hào)碼的廣告