为什么javascript设计为单线程?它又是如何解决单线程带来的问题的?
admin
2024-03-25 15:54:27
0

为什么javascript设计为单线程?我觉得这和它的应用场景有关。

这门语言最初的设计目的就是运行在浏览器上,用于处理DOM等工作,那么为了避免多个线程同时操作一个DOM之类的问题发生,单线程不失为一个良策。我觉得这也是设计者将javascript设计为单线程语言的一个很重要的原因。

虽然可以通过锁来解决上面的问题。但是这会因为引入了锁而为语言带来更大的复杂性。

单线程为javascript保证了执行顺序,也为javascript带来了一些问题,如阻塞问题,效率问题等。

阻塞问题javascript设计者的应对方案为将任务分为同步任务和异步任务,通过EventLoop规则来处理不同类型的任务,常用的promise、async/await即为其思想的实践。

效率问题javascript设计者的应对方案为webWorker,它可以开启新的线程进行工作,虽然其让javascript看起来变为“多线程”,但是webworker有诸多限制,比如其不能操作DOM,这也就避免了上面所说的多线程带来的问题,所以webWorker线程不能真正意义上算作单独的线程,它只是服务于主线程,所以javascript单线程这一特性毋庸置疑。

webWorker适用于单纯的大计算量的工作,在主线程中将要计算的数据传入一个webWorker线程,webWorker线程中使用算法计算,这样不影响主线程的任何工作,等到webWorker线程完成计算后将结果返回给主线程即可。

相关内容

热门资讯

星辰可以描写人吗 星辰可以描写人吗描写星辰的成语常见的有这些:【炳如日星】:光明如同日月星辰。【炳若日星】:光明如同日...
西北必玩攻略来啦,西北8日游路... 西北,这片广袤无垠的土地,有着最原始的自然风光和最淳朴的人文风情。当你踏上这片土地的那一刻,一场视觉...
火影忍者,大筒木一族为什么除了... 火影忍者,大筒木一族为什么除了辉夜以外,其他的人都不会忍术?忍术祥滑毕是在大筒木辉夜的查克拉被六道仙...
掌柜的小破酒馆被人拆了东墙后来... 掌柜的小破酒馆被人拆了东墙后来?后来掌柜被人追杀
北京22家博物馆暑期错峰或取消... 炎炎夏日,暑期来临,为满足广大市民和游客日益增长的文化需求,北京地区博物馆积极行动,精心策划,部分博...
枪神纪工程师的传送门怎么按? 枪神纪工程师的传送门怎么按?等前颤你有十多级,先去过生涯任务,然后就会有传送了,使用是:F(切换技能...
献给我挚爱的科比布莱恩特先生:... 献给我挚爱的科比布莱恩特先生:我是为什么爱上黑曼巴?黑曼巴精神确实是激励大家的精神,所以喜欢科比是非...
找一本小说,叫什么 帝国 写的... 找一本小说,叫什么 帝国 写的是唐朝的,穿越类,主角姓房求指教!!!!调教初唐,主角房遗爱,作者晴了...
初中生能唱的简单一点的英文歌曲... 初中生能唱的简单一点的英文歌曲 1.my love 2.Tonight,I feel close t...
二年级的孩子学英语选剑桥还是昂... 二年级的孩子学英语选剑桥还是昂立?  太平洋少儿英语也是不错的,你可以跟昂立英语对比下,太平洋少儿英...
考北京电影学院导演系研究生的难... 考北京电影学院导演系研究生的难度有多大?应该看哪些书北京电影学院作为国内最好的电影专业院校,还是有一...
飞跃现在属于回力了吗?买的一双... 飞跃现在属于回力了吗?买的一双飞跃的凉鞋,里面贴的是回力的标。飞跃现在属于回力了吗?买的一双飞跃的凉...
邂逅20℃的凉夏 2025仰天... 本文转自:人民网-湖南频道活动现场。受访单位供图人民网长沙7月8日电(刘汕) 星空下,草地上,游客们...
魔幻仙踪主题曲和结尾曲分别叫什... 魔幻仙踪主题曲和结尾曲分别叫什么名字?百变小樱的主题曲叫什么?如果是说《魔卡少女樱》的话,主题曲有:...
荔波小七孔:打造特色民宿产业 ... 本文转自:人民网-贵州频道近年来,荔波县小七孔镇依托资源优势,聚力发展特色民宿产业,深入推进农旅融合...
如何销售锦鲤? 因为它这么贵?... 如何销售锦鲤? 因为它这么贵?有什么好的销售方法吗?贵??便宜点儿就行了呗~~
准备买小提琴,不太明白电子小提... 准备买小提琴,不太明白电子小提琴和普通木制小提琴的区别我是初学者,想买个小提琴当兴趣玩玩,想问一下电...
原创 三... 三伏天这段日子,空气热得发沉,湿气像看不见的网裹住身体,连喘气都带着黏腻。老话说“暑必挟湿”,湿热交...
“我家楼下,也太好吃了吧!”厦... “我家楼下,也太好吃了吧!”厦门居民楼下爆火美食!老厦门吃了十年走不动道!地方难找但真的好吃 那些藏...