1線程和進程得區(qū)別
什么是進程(Process):普通的解釋就是舌厨,進程是程序的一次執(zhí)行
什么是線程(Thread),線程可以理解為進程中的執(zhí)行的一段程序片段忿薇。
1? 進程是擁有資源的最小單位裙椭;線程是調(diào)度的最小單位。
2 進程擁有自己獨立的地址空間署浩,每啟動一個進程揉燃,系統(tǒng)會為其配地址空間,建立數(shù)據(jù)來維護代碼段筋栋、堆棧段炊汤、數(shù)據(jù)段;線程沒有獨立的空間地址弊攘,它使用相同的地址空間共享數(shù)據(jù)抢腐。
3 CPU切換一個線程比一個進程花費小。
4 創(chuàng)建一個線程比一個進程開銷小襟交。
5. 線程占用的資源比進程少很多迈倍。線程之間通信更方便,同一進程下婿着,線程共享全局變量授瘦、靜態(tài)變量等數(shù)據(jù)。
6? ?多進程程序更加安全竟宋、生命力更強提完,一個進程死掉不會影響另一個進程(它擁有獨立地址空間);多線程程序不易維護丘侠,一個線程死掉徒欣,整個線程就結(jié)束了(共享地址空間)。
7? ?進程保護要求高蜗字,開銷大打肝,效率相對較低;線程效率就比較高挪捕,可以頻繁切換粗梭。
2eval是做什么得
把字符串參數(shù)解析成JS代碼并運行,并返回執(zhí)行的結(jié)果级零;
3哪些操作會造成內(nèi)存泄漏
內(nèi)存泄漏指任何對象在您不再擁有或需要它之后仍然存在断医。
垃圾回收器定期掃描對象,并計算引用了每個對象的其他對象的數(shù)量。如果一個對象的引用數(shù)量為 0(沒
有其他對象引用過該對象)鉴嗤,或?qū)υ搶ο蟮奈┮灰檬茄h(huán)的斩启,那么該對象的內(nèi)存即可回收。
1setTimeout 的第一個參數(shù)使用字符串而非函數(shù)的話醉锅,會引發(fā)內(nèi)存泄漏兔簇。
2閉包
3控制臺日志
4循環(huán)(在兩個對象彼此引用且彼此保留時,就會產(chǎn)生一個循環(huán))