除非必要,不要使用Linux訊號

2021-10-09 21:21:20 字數 591 閱讀 3744

除非必要,不要使用linux的訊號做任何事情。因為這套工具的使用非常容易出錯,對開發人員的基礎知識和經驗要求較高。

除非必要,不要處理sigse**。處理錯誤會導致程序段錯誤後進入處理段錯誤的死迴圈。

除非必要,不要處理sigchld。處理錯誤會產生殭屍程序。

除非必要,不要處理sigcont。systemd在正常退出時會連續發sigcont和sigterm,處理的不好會導致收不到sigterm。

訊號處理函式中不應該有複雜的業務邏輯處理,因為訊號處理會占用當前執行緒的執行時,如果當前執行時與訊號處理的邏輯之間有衝突,就容易導致死鎖。最常見的情況是當前執行緒正在分配記憶體,訊號處理函式中也有分配記憶體的操作,這時當前執行緒就會死鎖。訊號處理函式中最好是就改一下標誌位,然後以可重入的方式通知負責處理訊號的執行緒,讓訊號處理執行緒去做詳細的處理。

linux訊號分為可靠訊號和不可靠訊號。大多數常用的訊號都是不可靠訊號。不可靠訊號其實就是多個訊號同時到來後沒有佇列機制,沒有及時處理的不可靠訊號都會被系統丟棄。linux系統雖然提供了一套機制來可靠地處理不可靠訊號,但是該機制的使用和除錯比較複雜,建議還是盡量避免連續收訊號的情況。如果一定要使用,請搜尋sigprocmask和sigpending的用法。

Excel要不要「引」

雙引號在excel公式中無處不在,我們有必要了解它的用法。一 什麼時候需要加 1 表示空字元。if a1 a1 10 意思是如果a1的值為空,則顯示空白,否則返回a1 10 2 字串 表示文字,在公式中文字兩邊都需要加雙引號。countif a a,abc 意思是統計a列的為 abc 的個數。3 日...

要不要冗餘字段

這個問題我糾結了老長時間,至今仍未想明白。但是與其萬馬齊喑不如胡說八道。如果使用者表新增計數字段,好處在於用空間換時間,查詢速度肯定快多了 如果追求簡潔無冗餘,好處在於清晰易懂,寫 不蔓不枝,特別漂亮。如果不設計冗餘字段,也慢不了多少,建立完外來鍵或者索引之後查詢速度會提公升很多。如果覺得這麼整寫s...

要不要造輪子?

在it界,有一句很經典的話 不要重複造輪子!我們要敏捷開發,快速迭代。這句話意思是說在已有技術可以解決需求的前提下我們不需要再重新實現乙個模組來實現功能,哪怕這個技術是第三方的。在當下,網際網路產品迭代更新的階段,公司業務需求變更頻繁,編碼與搬磚無異,這句話被很多人奉為圭臬,甚至是很多人 指導思想 ...