<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=%E5%88%86%E5%8F%89%E4%BB%94%E6%9C%83%E5%90%88%E6%A8%A1%E5%9E%8B</id>
	<title>分叉仔會合模型 - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=%E5%88%86%E5%8F%89%E4%BB%94%E6%9C%83%E5%90%88%E6%A8%A1%E5%9E%8B"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=%E5%88%86%E5%8F%89%E4%BB%94%E6%9C%83%E5%90%88%E6%A8%A1%E5%9E%8B&amp;action=history"/>
	<updated>2026-05-21T06:54:58Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=%E5%88%86%E5%8F%89%E4%BB%94%E6%9C%83%E5%90%88%E6%A8%A1%E5%9E%8B&amp;diff=443070&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=%E5%88%86%E5%8F%89%E4%BB%94%E6%9C%83%E5%90%88%E6%A8%A1%E5%9E%8B&amp;diff=443070&amp;oldid=prev"/>
		<updated>2025-08-22T23:24:22Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;佇平行計算中，&amp;#039;&amp;#039;&amp;#039;分叉會合&amp;#039;&amp;#039;&amp;#039;模型是設定佮執行並列程式的一種方式，使得程式咧指定一點仔上「分叉」（fork）煞開始並列執行，綴尾仔一點上「會合」（join）並且恢復順序執行。並列區段會當遞迴的 fork，一直到達到特定的任務粒度（granularity）。 Fork–join 會當予人看做是一種並列設計模式，伊上早是由馬爾文 ・ 康威公式化佇一九六三年。&lt;br /&gt;
&lt;br /&gt;
==概述==&lt;br /&gt;
&lt;br /&gt;
通過交迴的岫狀 fork–join 計算，會當得著並列版本的分治範式，表達為了一般性虛擬碼：&lt;br /&gt;
&lt;br /&gt;
` ` `&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;解影響 ( 鋪排 )&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;if&amp;#039;&amp;#039;&amp;#039;鋪排誠奢颺 :&lt;br /&gt;
直接刣枋枋 ( 鋪排算法 )&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;else&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;for&amp;#039;&amp;#039;&amp;#039;部份&amp;#039;&amp;#039;&amp;#039;in&amp;#039;&amp;#039;&amp;#039;鋪分 ( 鋪排 )&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;fork&amp;#039;&amp;#039;&amp;#039;子任石樵&amp;#039;&amp;#039;&amp;#039;解影響 ( 部份 )&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;join&amp;#039;&amp;#039;&amp;#039;佇頭前的循中生成的所有子任施&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039;合影響的穆果&lt;br /&gt;
` ` `&lt;br /&gt;
&lt;br /&gt;
==例==&lt;br /&gt;
&lt;br /&gt;
簡單的並列合併排序是一種 fork–join 演算法：&lt;br /&gt;
&lt;br /&gt;
` ` `&lt;br /&gt;
mergesort ( A , lo , hi ) :&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;if&amp;#039;&amp;#039;&amp;#039;lo &amp;lt; hi : / / 至少有一個擴入元素&lt;br /&gt;
mid=⌊lo + ( hi-lo ) / 二 ⌋&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;fork&amp;#039;&amp;#039;&amp;#039;mergesort ( A , lo , mid ) / / 分叉出子任石樵理第一个抹壁堵用，伊 ( 板佇的 ) 抹粉行于主任腰&lt;br /&gt;
mergesort ( A , mid , hi ) / / 主任抹壁堵第二个抹壁堵用&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;join&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
merge ( A , lo , mid , hi )&lt;br /&gt;
` ` `&lt;br /&gt;
&lt;br /&gt;
第一个遞迴呼叫是「分叉出」的（forked off）， 這意味著伊會當佇單獨的執行緒中的執行，自按呢並列佇這个函式的後續部份，一直到 join 致使所有執行緒仝步化。就算講 join 看起來若一个屏障（barrier）， 毋過兩者並無仝款，因為各個執行緒佇一個屏障了後欲繼續做工課，啊若佇咧 join 了後干焦一个執行緒繼續工課。&lt;br /&gt;
&lt;br /&gt;
佇咧上述偽碼中第二个遞迴呼叫毋是分叉的；這刁故意為之一的，因為分叉任務是愛付出代價的。若是共兩个交迴呼叫攏共設定做任務，主任務咧予人窒咧 join 進前將無任何另外的工課會當進行。&lt;br /&gt;
&lt;br /&gt;
==實現==&lt;br /&gt;
&lt;br /&gt;
佇咧 fork–join 模型的實現中，fork 的典型的是任務、纖程即輕量級執行緒，毋是作業系統級別款的「重量級」執行緒抑是行程，而且使用執行緒池來執行遮的任務：fork 原語（primitive）允准編程者指定「藏佇的」並列，由實現機制來共𪜶對映（map）到實際的並列執行之上。遮爾設計的原因是建立新執行緒較趨勢致使誠大的開銷。&lt;br /&gt;
&lt;br /&gt;
佇咧 fork–join 編程中用著的輕量級執行緒，典型的有𪜶家己的排程器，排程器典型的採用工課搶斷策略，而且共遮的執行緒對映到底層的執行緒池。這種排程器比全特徵的搶占式作業系統排程器愛簡單的：通用的執行緒排程器必須處理針對鎖的阻塞，啊若佇咧 fork–join 範式當中，執行緒干焦窒佇咧 join 點起去。&lt;br /&gt;
&lt;br /&gt;
佇咧 OpenMP 框架中，Fork–join 是主要的並列執行模型，就算講 OpenMP 實現會當支援嘛會當無支援並列段落的岫狀。共伊支援的猶閣有：Java concurrency 框架、微軟 . NET 的任務並列庫佮 Intel 的執行緒建造塊（TBB）。 Cilk 程式語言有對 fork 和 join 語言級別支援，其形式做 ` spawn ` 和 ` sync ` 關鍵字抑是 Cilk Plus 中的 ` cilk _ spawn ` 和 ` cilk _ sync `。&lt;br /&gt;
&lt;br /&gt;
==參見==&lt;br /&gt;
&lt;br /&gt;
* 猶閣列編程模型&lt;br /&gt;
* Fork ( 系統呼叫 )&lt;br /&gt;
* 共享記憶體並列的矩陣乘法演算法&lt;br /&gt;
* 工課搶斷&lt;br /&gt;
&lt;br /&gt;
==參照==&lt;br /&gt;
&lt;br /&gt;
==外部連結==&lt;br /&gt;
&lt;br /&gt;
* A Primer on Scheduling Fork–Join Parallelism with Work Stealing&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>