日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

c语言编写服务器的优点,用C语言编写的服务器中记录效率最高的文件是什么?...

發(fā)布時(shí)間:2024/10/8 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言编写服务器的优点,用C语言编写的服务器中记录效率最高的文件是什么?... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用線程通常是一個(gè)很好的解決方案,我們通過(guò)它有趣的結(jié)果。

需要記錄的主線程準(zhǔn)備日志字符串并將其傳遞給第二個(gè)線程。為了提供第二個(gè)線程,我們使用無(wú)鎖隊(duì)列+循環(huán)內(nèi)存來(lái)盡量減少alloc/free和等待時(shí)間。

secon線程等待無(wú)鎖隊(duì)列可用。當(dāng)它發(fā)現(xiàn)需要做一些工作時(shí),無(wú)鎖隊(duì)列的一個(gè)新槽被消耗并記錄數(shù)據(jù)。

使用單獨(dú)的線程可以節(jié)省大量時(shí)間。

當(dāng)我們決定使用secon線程后,我們不得不面對(duì)另一個(gè)問(wèn)題。同一個(gè)程序(一個(gè)全文serach引擎)的許多事件必須全部記錄在同一個(gè)文件中,以便在服務(wù)器的每個(gè)實(shí)例之間定期共享資源。

我們可以決定使用一個(gè)信號(hào)量或另一個(gè)syncornizing方法,但我們發(fā)現(xiàn)了另一個(gè)解決方案:第二個(gè)線程發(fā)送一個(gè)UDP數(shù)據(jù)包到本地日志服務(wù)器,該服務(wù)器偵聽(tīng)已知端口。該服務(wù)器讀取每條消息并將其記錄在文件上(服務(wù)器實(shí)際上是寫入文件時(shí)唯一擁有該文件的服務(wù)器)。 UDP套接字本身授予日志的序列化。

我一直在使用這個(gè)解決方案超過(guò)10年,并且從未松動(dòng)我的日志文件的單行,使用第二個(gè)線程我也為每個(gè)操作節(jié)省了大量的時(shí)間(我們用來(lái)記錄大量的服務(wù)器接收到的任何單個(gè)命令的信息)。

HTH

總結(jié)

以上是生活随笔為你收集整理的c语言编写服务器的优点,用C语言编写的服务器中记录效率最高的文件是什么?...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。