單線程的人什么意思 在什么情況下單線程比多線程效率高?
在什么情況下單線程比多線程效率高?1. 多線程有線程切換的代價。如果執(zhí)行時間短,線程切換將浪費時間2。當存在資源爭用時,多線程往往會導致鎖定,消耗資源一般來說,單線程的處理能力比多線程差,但redis
在什么情況下單線程比多線程效率高?
1. 多線程有線程切換的代價。如果執(zhí)行時間短,線程切換將浪費時間
2。當存在資源爭用時,多線程往往會導致鎖定,消耗資源
一般來說,單線程的處理能力比多線程差,但redis為什么更快主要是因為以下原因:
1。純內存訪問,redis將所有的數(shù)據(jù)都放在內存中,而內存的響應時間約為100納秒,這是redis達到每秒10000次的水平的重要基礎。
2. 非阻塞io。Redis使用epoll作為I/O復用技術的實現(xiàn)。此外,redis自己的事件處理模型將epoll中的連接、讀寫和關閉轉換為事件,不會在網(wǎng)絡I/O上浪費太多時間。單線程避免了線程切換和爭用的消耗。
單線程的優(yōu)點:1。簡化了數(shù)據(jù)結構和算法的實現(xiàn)。
2. 避免線程切換和爭用的消耗。對于服務器,鎖和線程切換通常是性能殺手。
單線程問題:每個命令的執(zhí)行時間都有要求。如果執(zhí)行一個命令,它將阻止其他命令,這對高性能服務redis是致命的。因此,redis是一個用于快速執(zhí)行場景的數(shù)據(jù)庫。