python做一個(gè)進(jìn)度條 python多線程為什么沒有并行?
python多線程為什么沒有并行?1. 什么是吉爾???Gil的全名是global interpreter lock(global interpreter lock),源于Python設(shè)計(jì)之初的考慮和
python多線程為什么沒有并行?
1. 什么是吉爾?
??Gil的全名是global interpreter lock(global interpreter lock),源于Python設(shè)計(jì)之初的考慮和對(duì)數(shù)據(jù)安全的決策。
2. 每個(gè)CPU只能同時(shí)執(zhí)行一個(gè)線程
??事實(shí)上,單核CPU下的多線程只是并發(fā),而不是并行。并發(fā)性和并行性是同時(shí)處理多個(gè)請(qǐng)求的概念。但是并發(fā)和并行之間有區(qū)別。并行意味著兩個(gè)或多個(gè)事件同時(shí)發(fā)生,而并發(fā)意味著兩個(gè)或多個(gè)事件在同一時(shí)間間隔發(fā)生。
百度搜索圈t社區(qū)(www.aiquanti.com)免費(fèi)視頻教程
多線程不能“快速”打印數(shù)字。
多線程加速的原因是有條件的。主要解決兩個(gè)問題。一是充分利用多個(gè)cpu(或多核cpu)實(shí)現(xiàn)并行計(jì)算。另一種是異步調(diào)用來實(shí)現(xiàn)延遲隱藏。在打印數(shù)字的要求方面,使用多線程必須鎖定顯示結(jié)果的代碼,否則輸出會(huì)比較混亂。因此,多線程不僅不可能更快,而且更慢,不用說代碼更麻煩。