原创 Zabbix源碼解析之Zabbix Agent主動和被動工作模式

被動模式(Passive Check) 1、主動和被動都是相對於參照物的,這裏我們所說的主動和被動,都是相對於“agent”來說的。 2、agent工作在被動模式下,那麼Zabbix服務器會定時對agent進行輪詢,以監控項關鍵字爲請求參

原创 Zabbix源碼解析之Zabbix Agent啓動流程

main函數 與zabbix_server中main函數的流程類似。 daemon_start函數 與zabbix_server中main函數的流程一致。只不過在agent中,daemon_start函數被START_MAIN_ZABBI

原创 十分鐘搞定Java多線程-如何使用sleep()方法和TimeUnit暫停線程

爲什麼要使用sleep暫停線程 有多種方法可以暫停或停止當前正在運行的線程,但是使用Thread.sleep()方法將線程置於睡眠狀態纔是暫停線程的正確方法。有些人會說,爲什麼不用wait和notify呢?僅僅爲了暫停線程而使用這些方法並

原创 程序員不把腎養好,老婆跟人跑

個人經歷 大多數程序員長時間伏案編碼,我也不例外,常常以工作繁忙爲理由忽視身體健康。 腎結石又是發生率比較高的疾病,我在2013年第一次確診,在2019年兩次確診,最嚴重的一次上吐下瀉,折磨了兩個星期,然後在醫院找談是否要手術時(比較小,

原创 十分鐘搞定Google面試題:數組與定值k的最優解法

問題 給定一個數字數組和一個數字k,返回數組中是否有兩個數字加起來等於k。 例如,給定數組:[10、15、3、7],和k:17,因爲10 + 7爲17,所以返回true。 這個問題大概是在2018年出現在Google的面試題裏。 建議在往

原创 一文搞懂算法複雜度分析:大O符號你都搞不懂,所以只能搬磚到禿頂?

如果你連算法複雜度分析都不會,或者沒有這種意思,你學各種排序算、查找等算法有何用,因爲你根本不知道或者沒有意識什麼時候應該使用它。當然,好處還是有的,能提高面試通過機率。 時間複雜度 大O符號背後的思想 大O符號是我們用來討論算法運行所需

原创 Google面試聖經-Cracking the Coding Interview

推薦一本神奇的書籍給大家,也是Google招聘人員推薦給我複習的,是國外碼農面試Google、Amazon、Microsoft、Facebook、Uber、Airbnb、Twitter等知名企業必備的學習材料,是一位金髮美女作者,曾經在G

原创 最厲害的面試技巧都有哪些-來自Google、Facebook、Twitter和BAT小夥伴們的總結

當你開始爲技術面試做準備時,有很多東西要學,你自然想到需要複習一下技術問題。但是你如何練習這些問題,會對你的面試準備有很大的影響。遺憾的是,鋪天蓋地各種面試題,不成系統,對於基礎不紮實的同學一頭扎進去,再扎出來懵的以爲自己都懂了,是要去G

原创 記一次我的Google電話面試經歷

去年一高中老同學從Google離職回Duke去讀博,她問我有興趣去面Google,我把簡歷發給她。 10月份,我就收到一封來自谷歌招聘人員的電子郵件,問我是否有興趣電話聊聊。我們約定在第二天電話。她先給我介紹Google,再詢問我

原创 十分鐘搞定Java多線程-如何終止Java線程

這是基礎的Java線程知識,也是Java面試中經常出現的題,實際上並沒有表面看上去那麼簡單。 啓動Java線程容易,因爲有Thread.start()方法,但是終止線程可不容易,因爲沒有可安全終止線程的方法。雖然Thread類提供了一個s

原创 使用eclipse搭建zabbix4.0.3 server端C源碼開發調試環境之一

1、準備開發環境     基於zabbix-4.0.3搭建的源碼開發系統環境:     操作系統:CentOS Linux 7     開發工具:Eclipse IDE for C/C++ Developers ,Version: Oxy

原创 十分鐘搞定Java多線程-關於Runnable你知道多少?

關於Java線程 Java中的線程是一個獨立的執行路徑,用於並行運行兩個任務。當兩個以上的線程並行運行時,在Java中稱爲多線程。Java從一開始就是多線程的,並且在語言級別上對線程提供了出色的支持,例如java.lang.Thread類

原创 Zabbix源碼解析之server啓動流程分析

main函數 操作序列如下圖所示:   struct ZBX_TASK_EX typedef struct { zbx_task_t task; int flags; int data; }

原创 十分鐘搞定Java多線程-Java中Thread.start()和Thread.run()方法有什麼不同

Java創建線程有兩種方式:(這也是Java面試常被問到一個Java線程基礎問題,不往下看你能回答出來嗎?) 1) 通過繼承 java.lang.Thread 類 2) 通過實現 java.lang.Runnable 接口。 Java啓動

原创 銀行業應用系統監控的維度與目標

有效應用管理的三個維度 1、交易監控(響應時間、故障隔離) 從用戶體驗的角度監控端到端交易 追蹤交易流 隔離故障部件 2、應用監控(深入診斷、跨系統關聯分析)  應用和中間件診斷 應用性能分析 深入到代碼級的分析 3、資源監控(應用服務器