国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C# 快速寫入日志 不卡線程 生產(chǎn)者 消費(fèi)者模式

這篇具有很好參考價(jià)值的文章主要介紹了C# 快速寫入日志 不卡線程 生產(chǎn)者 消費(fèi)者模式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

有這樣一種場(chǎng)景需求,就是某個(gè)方法,對(duì)耗時(shí)要求很高,但是又要記錄日志到數(shù)據(jù)庫(kù)便于分析,由于訪問(wèn)數(shù)據(jù)庫(kù)基本都要幾十毫秒,可在方法里寫入BlockingCollection,由另外的線程寫入數(shù)據(jù)庫(kù)。
可以看到,在我的機(jī)子上面,1ms寫入了43條日志。

        public static BlockingCollection<LogModel> logQueue = new BlockingCollection<LogModel>(3000);

        public static void QuickLog(string log)
        {
            LogModel logModel = new LogModel();
            logModel.Log = log;
            logModel.Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
            logQueue.Add(logModel);
        }
        //在程序加載的時(shí)候,調(diào)用一下此方法
        public static void QuickLogToDatabase()
        {
            Task.Run(() =>
            {
                string sql;
                while (true)
                {
                    try
                    {
                        var logModel = logQueue.Take();
                        //以下是寫入耗時(shí)日志的部分,由自己的具體情況而定
                        //sql = string.Format(Function.SQL.InsertLog, logModel.Log, logModel.Time);
                        //Function.Helper.MySQLHelper.ExecuteNonQuery(sql);
                    }
                    catch (Exception ex)
                    {
                        Thread.Sleep(1000);
                        //catch部分,可以寫入本地的txt
                        //DebugLog("QuickLogToDatabase:" + ex.Message);
                    }

                }

            });
        }
        public class LogModel
        {
            public string Log { set; get; }
            public string Time { set; get; }
        }

C# 快速寫入日志 不卡線程 生產(chǎn)者 消費(fèi)者模式,c#,oracle,數(shù)據(jù)庫(kù)
C# 快速寫入日志 不卡線程 生產(chǎn)者 消費(fèi)者模式,c#,oracle,數(shù)據(jù)庫(kù)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-617036.html

到了這里,關(guān)于C# 快速寫入日志 不卡線程 生產(chǎn)者 消費(fèi)者模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 多線程之生產(chǎn)者消費(fèi)者

    目的是回顧多線程的幾個(gè)api 多生產(chǎn)者+多消費(fèi)者+共享池

    2024年02月07日
    瀏覽(27)
  • 第3、4章 Kafka 生產(chǎn)者 和 消費(fèi)者 ——向 Kafka 寫入數(shù)據(jù) 和讀取數(shù)據(jù)

    第3、4章 Kafka 生產(chǎn)者 和 消費(fèi)者 ——向 Kafka 寫入數(shù)據(jù) 和讀取數(shù)據(jù)

    重要的特性: 消息通過(guò) 隊(duì)列來(lái)進(jìn)行交換 每條消息僅會(huì)傳遞給一個(gè)消費(fèi)者 消息傳遞有先后順序,消息被消費(fèi)后從隊(duì)列刪除(除非使用了消息優(yōu)先級(jí)) 生產(chǎn)者或者消費(fèi)者可以動(dòng)態(tài)加入 傳送模型: 異步即發(fā)即棄:生產(chǎn)者發(fā)送一條消息,不會(huì)等待收到一個(gè)響應(yīng) 異步請(qǐng)求、應(yīng)答:

    2024年02月20日
    瀏覽(21)
  • 線程同步--生產(chǎn)者消費(fèi)者模型--單例模式線程池

    線程同步--生產(chǎn)者消費(fèi)者模型--單例模式線程池

    條件變量是 線程間共享的全局變量 ,線程間可以通過(guò)條件變量進(jìn)行同步控制 條件變量的使用必須依賴于互斥鎖以確保線程安全,線程申請(qǐng)了互斥鎖后,可以調(diào)用特定函數(shù) 進(jìn)入條件變量等待隊(duì)列(同時(shí)釋放互斥鎖) ,其他線程則可以通過(guò)條件變量在特定的條件下喚醒該線程( 喚醒后線

    2024年01月20日
    瀏覽(22)
  • 【Linux】線程安全-生產(chǎn)者消費(fèi)者模型

    【Linux】線程安全-生產(chǎn)者消費(fèi)者模型

    1個(gè)線程安全的隊(duì)列:只要保證先進(jìn)先出特性的數(shù)據(jù)結(jié)構(gòu)都可以稱為隊(duì)列 這個(gè)隊(duì)列要保證互斥(就是保證當(dāng)前只有一個(gè)線程對(duì)隊(duì)列進(jìn)行操作,其他線程不可以同時(shí)來(lái)操作),還要保證同步,當(dāng)生產(chǎn)者將隊(duì)列中填充滿了之后要通知消費(fèi)者來(lái)進(jìn)行消費(fèi),消費(fèi)者消費(fèi)之后通知生產(chǎn)者

    2024年02月10日
    瀏覽(25)
  • 線程池-手寫線程池C++11版本(生產(chǎn)者-消費(fèi)者模型)

    線程池-手寫線程池C++11版本(生產(chǎn)者-消費(fèi)者模型)

    本項(xiàng)目是基于C++11的線程池。使用了許多C++的新特性,包含不限于模板函數(shù)泛型編程、std::future、std::packaged_task、std::bind、std::forward完美轉(zhuǎn)發(fā)、std::make_shared智能指針、decltype類型推斷、std::unique_lock鎖等C++11新特性功能。 本項(xiàng)目有一定的上手難度。推薦參考系列文章 C++11實(shí)用技

    2024年02月13日
    瀏覽(26)
  • 線程同步、生產(chǎn)者消費(fèi)模型和POSIX信號(hào)量

    線程同步、生產(chǎn)者消費(fèi)模型和POSIX信號(hào)量

    gitee倉(cāng)庫(kù): 1.阻塞隊(duì)列代碼:https://gitee.com/WangZihao64/linux/tree/master/BlockQueue 2.環(huán)形隊(duì)列代碼:https://gitee.com/WangZihao64/linux/tree/master/ringqueue 概念 : 利用線程間共享的全局變量進(jìn)行同步的一種機(jī)制,主要包括兩個(gè)動(dòng)作:一個(gè)線程等待\\\"條件變量的條件成立\\\"而掛起;另一個(gè)線程使“

    2024年02月03日
    瀏覽(23)
  • python爬蟲,多線程與生產(chǎn)者消費(fèi)者模式

    使用隊(duì)列完成生產(chǎn)者消費(fèi)者模式 使用類創(chuàng)建多線程提高爬蟲速度 通過(guò)隊(duì)列可以讓線程之間進(jìn)行通信 創(chuàng)建繼承Thread的類創(chuàng)建線程,run()會(huì)在線程start時(shí)執(zhí)行 吃cpu性能

    2024年02月09日
    瀏覽(18)
  • JavaEE 初階篇-生產(chǎn)者與消費(fèi)者模型(線程通信)

    JavaEE 初階篇-生產(chǎn)者與消費(fèi)者模型(線程通信)

    ??博客主頁(yè):?【 小扳_-CSDN博客】 ?感謝大家點(diǎn)贊??收藏?評(píng)論? ? 文章目錄 ? ? ? ? 1.0 生產(chǎn)者與消費(fèi)者模型概述 ? ? ? ? 2.0?在生產(chǎn)者與消費(fèi)者模型中涉及的關(guān)鍵概念 ? ? ? ? 2.1 緩沖區(qū) ? ? ? ? 2.2 生產(chǎn)者 ? ? ? ? 2.3 消費(fèi)者 ? ? ? ? 2.4 同步機(jī)制 ? ? ? ? 2.5 線程間通

    2024年04月28日
    瀏覽(31)
  • 探究:kafka生產(chǎn)者/消費(fèi)者與多線程安全

    探究:kafka生產(chǎn)者/消費(fèi)者與多線程安全

    目錄 1. 多線程安全 1.1. 生產(chǎn)者是多線程安全的么? 1.1. 消費(fèi)者是多線程安全的么? 2. 消費(fèi)者規(guī)避多線程安全方案 2.1. 每個(gè)線程維護(hù)一個(gè)kafkaConsumer 2.2. [單/多]kafkaConsumer實(shí)例 + 多worker線程 2.3.方案優(yōu)缺點(diǎn)對(duì)比 ????????Kafka生產(chǎn)者是 線程安全 的,可以在多個(gè)線程中共享一個(gè)

    2023年04月26日
    瀏覽(24)
  • 多線程(初階七:阻塞隊(duì)列和生產(chǎn)者消費(fèi)者模型)

    多線程(初階七:阻塞隊(duì)列和生產(chǎn)者消費(fèi)者模型)

    目錄 一、阻塞隊(duì)列的簡(jiǎn)單介紹 二、生產(chǎn)者消費(fèi)者模型 1、舉個(gè)栗子: 2、引入生產(chǎn)者消費(fèi)者模型的意義: (1)解耦合 (2)削峰填谷 三、模擬實(shí)現(xiàn)阻塞隊(duì)列 1、阻塞隊(duì)列的簡(jiǎn)單介紹 2、實(shí)現(xiàn)阻塞隊(duì)列 (1)實(shí)現(xiàn)普通隊(duì)列 (2)加上線程安全 (3)加上阻塞功能 3、運(yùn)用阻塞隊(duì)列

    2024年02月05日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包