單線程和多線程
單線程和多線程有什么區(qū)別呢?有人說過比較形象生動(dòng)的比喻,單線程就像你在地鐵站刷卡,突然電話來了,你只能先打卡后接電話或者先接電話后打卡,同一時(shí)間只能選擇做一樣事情,而且要等它做完了才能繼續(xù)下一件,多線程就像你在地鐵站打卡,突然電話來了,你可以接電話的同時(shí)順便打卡,或者打卡的同時(shí)順便接電話,不用等著電話結(jié)束才能打卡,或者不用等著打卡結(jié)束了才能接電話,兩樣及以上的事情可以一并處理。
從整體看起來,多線程當(dāng)然比單線程效率高多了,但是執(zhí)行單個(gè)任務(wù)時(shí),單線程是集中所有資源來執(zhí)行任務(wù),而多線程是兼顧多個(gè)任務(wù),實(shí)際上你所執(zhí)行的任務(wù)一般都是多個(gè)的,還是多線程更有效率。像電腦上又在登錄QQ又在登錄微信,還開著網(wǎng)頁(yè),打開視頻,文件夾,等等,如果不是多線程早就崩潰了,得一個(gè)一個(gè)來,一個(gè)時(shí)間只能執(zhí)行一個(gè)任務(wù),打開微信了,得等微信用完了,關(guān)閉了,再打開下一個(gè)任務(wù)才能執(zhí)行,這樣單線程的話,完全無法滿足如今的多任務(wù)的需求的。他一臺(tái)電腦可以打開word寫文檔,瀏覽器瀏覽網(wǎng)頁(yè),QQ客戶端,計(jì)算器,PDF閱讀器,等等,都能運(yùn)行,而你的單線程呢,一時(shí)之間只能運(yùn)行一個(gè)軟件,那個(gè)效率就相差太遠(yuǎn)了,進(jìn)一步,效率之差就是生命長(zhǎng)度之差。
華羅庚有篇關(guān)于燒開水泡茶喝的統(tǒng)籌方法,那個(gè)統(tǒng)籌方法用于比較機(jī)械的任務(wù)時(shí)比較有用,不能生搬硬套,以前有人說過,想吃雞蛋,于是在煮雞蛋的同時(shí)寫作業(yè),然后雞蛋熟了,作業(yè)也做了一點(diǎn)了,但是這樣會(huì)很影響注意力的集中,在煮雞蛋的時(shí)候?qū)懽鳂I(yè),你在寫作業(yè)的同時(shí)心里是掛念著煮雞蛋的,擔(dān)心會(huì)不會(huì)煮過頭了,水煮干了可能還有危險(xiǎn),這時(shí)候貌似就不適合運(yùn)看起來比較節(jié)省時(shí)間的統(tǒng)籌方法了。相反,等待雞蛋煮熟了,關(guān)火了,再去做作業(yè),看起來在煮雞蛋的十分鐘時(shí)間里沒有做作業(yè),但是即便做作業(yè),那十分鐘很可能也是十分低效的,等把雞蛋煮熟了再去做作業(yè),就可以心無旁騖,效率高多了。在燒開水泡茶喝的時(shí)候,先洗水壺裝水燒水,在等水開的時(shí)候洗茶杯找茶葉,等水開了就可以泡茶喝了。這個(gè)方法是最優(yōu)的,可以看出,如果這樣做,你的大腦就相當(dāng)于是個(gè)多線程操作系統(tǒng),在燒水的同時(shí)做其他能做的事兒,而不是必須要等水燒開了,然后才能找茶葉,茶葉找好了,才能洗茶杯,必須一個(gè)任務(wù)從頭到尾做完了才能繼續(xù)下一個(gè)任務(wù),這樣單位時(shí)間內(nèi)只能執(zhí)行一個(gè)單一的任務(wù),那說明就是單線程操作系統(tǒng)。
有的事情比較復(fù)雜,需要長(zhǎng)時(shí)間堅(jiān)持努力才能解決,那么可能就不適合在做那件事情的同時(shí)去做其他的事情了,但是多線程也并不是說同一時(shí)間處理所有事件,而是有些比較輕松的任務(wù)可以掛在那,進(jìn)程掛在那,有資源有空了繼續(xù)進(jìn)行,而不是直接把它關(guān)閉了,等需要執(zhí)行的時(shí)候再重新打開執(zhí)行,那樣就慢多了,明明已經(jīng)有進(jìn)度的,何必關(guān)了重新來過呢,除非出了問題不得已這樣做。
《十萬個(gè)為什么》,小時(shí)候有這么一套書,紙質(zhì)不咋的,內(nèi)容都是些為什么,可是現(xiàn)在來看,那個(gè)時(shí)候覺得十萬個(gè)為什么好多,現(xiàn)在覺得,十萬個(gè)為什么算什么啊,這個(gè)世界豈止十萬個(gè)為什么啊?簡(jiǎn)直可以有萬萬個(gè)為什么,億億個(gè)為什么,根本不可計(jì)數(shù)個(gè)為什么。遠(yuǎn)了多了,可以說沒有什么意義了,像有些問題,如果幾十年,一百年不能解決的,那對(duì)于個(gè)人來說就沒有什么意義了。那些能在預(yù)期期限內(nèi)解決的問題對(duì)于個(gè)人才有意義,幾年,十幾年,幾十年,太久遠(yuǎn)了,像什么溫室效應(yīng),環(huán)境保護(hù),空氣污染等等,對(duì)于個(gè)人來說沒有多大的意義,那些都是百年之后的事情,不論溫室效應(yīng)是真假,只是以這類問題代表舉個(gè)例子。
不過那《十萬個(gè)為什么》,就讀過幾頁(yè)就沒讀了,初中高中買了些名著,也沒讀多少,還有工作后買了些書,也沒有讀多少,絕大多數(shù)都沒有讀過,哎。所以,的確是個(gè)懶惰的人啊。模擬器安裝好了,下了個(gè)絕地求生·刺激戰(zhàn)場(chǎng),微信掃描二維碼登錄,卻說不能注冊(cè)了,建議玩用移動(dòng)設(shè)備玩,這就沒意思了。模擬器玩有模擬器的玩法,手機(jī)玩有手機(jī)的玩法,端游有端游的玩法,玩法各不相同,各有各的樂趣,想用什么玩就用什么玩,更有意思些。
很多人覺得玩游戲是浪費(fèi)時(shí)間,其實(shí)幾乎所有人也多多少少玩過游戲,只是大多數(shù)的人玩了就玩了,沒有什么積累,其實(shí)游戲里也可以學(xué)到東西,只是簡(jiǎn)單地玩玩就沒有什么意義。玩游戲就像追劇,看武俠小說,閑聊,其實(shí)有什么差別呢,回頭看,大多數(shù)時(shí)光是比較閑雜的,清閑的,沒有什么特別的積累。而游戲,那些玩得特別好的,有做游戲的,拍電視劇的,總有些常人沒有的收獲,能賺到很多錢,也不是一無是處,相反,若是人的操作系統(tǒng)低級(jí),隨便做什么可能也是沒有什么意義的。就像幾乎所有人都從小就在上學(xué),但不是人人都能在這條路上走得更遠(yuǎn),即便上還是相當(dāng)多的人都沒有走得多遠(yuǎn),但是不能說上學(xué)就沒有意義。其實(shí),人不一樣,走到哪里,貌似都能耐心積累,過得不錯(cuò)。