麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 為什么聲明性語言往往適合于并行執(zhí)行,命令代碼很難在多個內(nèi)核和多個機器之間并行化?

為什么聲明性語言往往適合于并行執(zhí)行,命令代碼很難在多個內(nèi)核和多個機器之間并行化?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-13 14:34:17 1697178857

一、為什么聲明性語言往往適合于并行執(zhí)行

函數(shù)式編程里的程序在輸入相同時總是得到相同的輸出,不包含其他狀態(tài),也不影響其他程序的狀態(tài),所以在哪里執(zhí)行都一樣,這樣就很容易調(diào)度到其他線程、進程甚至遠程服務器上。而命令式代碼通常隱含地使用全局狀態(tài),這些狀態(tài)在不同代碼之間是共享的,代碼的執(zhí)行時序會影響執(zhí)行結(jié)果,這就導致難以并行化。

但這并非沒有代價。純粹的函數(shù)式編程無法處理帶有狀態(tài)的外部組件,而磁盤讀寫、網(wǎng)絡輸入輸出等IO操作天生是有狀態(tài)的,如果不能處理這些對象,語言的適用范圍是很窄的。所以函數(shù)式編程語言通常也會要么帶有命令式的支持,要么將處理有狀態(tài)的對象的過程封裝到某些外部的統(tǒng)一模型當中(比如Erlang的消息機制)

聲明性范式只要求程序員提供程序的目的,然后系統(tǒng)自己有編譯器,lib或優(yōu)化器去計算出”怎么達到目的”較好的執(zhí)行路徑,而不用程序員提供怎么達到目的方法或者hint。而命令式范式需要程序員手把手的告訴機器怎么完成任務。機器無法區(qū)分目的和手段,而必須嚴格按照程序指定的來執(zhí)行。

相比之下,就是根據(jù)“優(yōu)化器”計算出來的執(zhí)行路徑好,還是人指定的好呢?(把“好”定義為價值除以產(chǎn)生價值需要的時間)

舉個例子: 對SQL來說,你只需要指定你想找什么。數(shù)據(jù)庫會自己算出來怎么按照你的要求找。 你如果用java或C在一大塊硬盤上找數(shù)據(jù),你就要自己去指定機器每一步怎么運行才能給你結(jié)果。

延伸閱讀:

二、聲明式與命令式

命令式(Imperative)和聲明式(Declarative)是很早就有的概念,比如 SQL、HTML、CSS 是典型的聲明式語言,而我們使用的絕大部分編程語言都是命令式的。

命令式編程就像它的名字一樣,它由開發(fā)者我們一步一步的告述計算機,執(zhí)行一系列的操作,然后得到想要的結(jié)果,起主要作用的是開發(fā)者,計算機只是幫助開發(fā)者執(zhí)行計算而已。

而聲明式編程卻與此相反,它不是告述計算機做什么做,而是直接告述計算它想要的結(jié)果,至于怎么做,由預先寫好的程序依據(jù)一定的算法由計算機自動推算出來。

聲明式與命令式的主要區(qū)別在于,聲明式描述的是結(jié)果,它不關心過程。比如 SQL,我們告述數(shù)據(jù)庫的是,我們要查詢某張表滿足某某條件的數(shù)據(jù),但我們并不會告述數(shù)據(jù)庫怎么去查,怎么查數(shù)據(jù)是數(shù)據(jù)庫系統(tǒng)自己關心的事情。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
MySQL DDL會鎖表不能寫,怎么保證持續(xù)讀寫呢?

一、MySQL DDL會鎖表不能寫,怎么保證持續(xù)讀寫比較笨的方法通常就是最常用的方法。搞一個臨時表,新數(shù)據(jù)寫兩份,舊數(shù)據(jù)分段導入臨時表。舊數(shù)據(jù)...詳情>>

2023-10-13 16:26:29
做網(wǎng)站要保存很多商家和商品圖片,原理是怎樣的?

一、做網(wǎng)站要保存很多商家和商品圖片,原理是怎樣的1、數(shù)據(jù)庫的存儲做網(wǎng)站要保存很多商家和商品圖片,原理是其實很簡單,就是在數(shù)據(jù)庫中建立兩...詳情>>

2023-10-13 16:10:22
dbvisualizer怎么導出整個數(shù)據(jù)庫?

一、dbvisualizer導出整個數(shù)據(jù)庫的步驟1、連接要導出的數(shù)據(jù)庫打開DBVisualizer,連接要導出的數(shù)據(jù)庫,通過導航器選擇要導出的數(shù)據(jù)庫對象,如表...詳情>>

2023-10-13 16:04:27
像愛奇藝、優(yōu)酷等視頻網(wǎng)站的數(shù)據(jù)庫是怎么設計的?

一、像愛奇藝、優(yōu)酷等視頻網(wǎng)站的數(shù)據(jù)庫是怎么設計的1、設置數(shù)據(jù)集成一般來說視頻網(wǎng)站數(shù)據(jù)庫的設計需要設置數(shù)據(jù)集成,針對于各大互聯(lián)網(wǎng)信息進行...詳情>>

2023-10-13 15:50:12
為什么mysql中刪除某一列的主鍵索引后另一列會從少數(shù)索引變成主鍵索引?

一、為什么mysql中刪除某一列的主鍵索引后另一列會從少數(shù)索引變成主鍵索引mysql中刪除某一列的主鍵索引后另一列會從少數(shù)索引變成主鍵索引,一般...詳情>>

2023-10-13 15:48:38
主站蜘蛛池模板: 女人扒开裤子让男人桶| 青青青国产免费线在| 免费国产成人午夜电影| 一二三四在线观看免费高清视频| 91黄瓜视频| 在线免费中文字幕| 四虎精品在线视频| 中文字幕久久久久久久系列| 美女把腿扒开让男人桶爽国产| 欧美一级片手机在线观看| 国产一级做a爰片...| 啊v在线观看| 色一情一乱一伦黄| www.中文字幕.com| 青青国产在线播放| 亚洲美女人黄网成人女| 麻豆精品不卡国产免费看| 三级黄色片在线观看| 国产国语一级毛片全部| 亚洲欧美综合国产精品一区| 亚洲乱码中文字幕综合| 久久精品无码一区二区日韩av| 韩国理论电影午夜三级717| 无翼乌全彩无遮挡动漫视频| 性高湖久久久久久久久aaaaa | 蜜柚免费视频下载| 成人国产在线不卡视频| 91热视频在线观看| 香港三级理论在线影院| 麻豆网站免费| 果冻传媒和精东影业在线观看| 亚洲免费综合色在线视频| 国产一区二区精品久久| 波多野结衣护士| 亚洲同性男gay网站在线观看| 加勒比色综合久久久久久久久| 波多野结衣新婚被邻居| 国产理论视频在线观看| 亚洲日本一区二区三区在线不卡| 日韩福利影院| 一区二区三区四区电影视频在线观看|