91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解易語言線程同步

發布時間:2020-10-01 06:35:14 來源:腳本之家 閱讀:396 作者:laozhang 欄目:編程語言

在易語言官方多線程支持庫中提供線程同步的方法是用許可區。

加入許可區之后可以防止多個線程同時訪問公用變量是發生沖突。加入許可區的代碼同時只能有一個線程訪問,避免沖突。

創建許可區:

創建并返回一個進入許可證數值,此許可證值用作進入程序中的指定許可代碼區,以避免多線程沖突。成功返回非零整數值,失敗返回0。所創建的許可證在不再使用后,必須使用“刪除進入許可證”命令將其刪除。本命令為初級命令。

刪除進入許可證:

刪除由“創建進入許可證”命令所創建返回的進入許可證。成功返回真,失敗返回假。本命令為初級命令。

參數 數據類型 說明
進入許可證 “整數型(int) 本參數應提供由“創建進入許可證”命令所創建并返回的數值。

進入許可區: 根據已經創建的許可證進入指定許可代碼區,在此線程未退出之前,其它線程如要通過同一個進入許可證進入該許可代碼區則必須先等待此線程退出許可代碼區,從而保證了指定許可代碼區在任何時候都只能有一條線程進入并執行。本命令為初級命令。

參數 數據類型 說明
進入許可證 整數型(int) 本參數應提供由“創建進入許可證”命令所創建并返回的數值。

.版本 2
.支持庫 EThread

.程序集 窗口程序集1
.程序集變量 線程句柄, 整數型, , "10"
.程序集變量 num, 整數型

.子程序 __啟動窗口_創建完畢
.局部變量 i, 整數型

i = 1
num = 10
.判斷循環首 (i ≤ 10)
  啟動線程 (&子程序1, , 線程句柄 )
  啟動線程 (&子程序2, , 線程句柄 [i + 1])
  關閉線程句柄 (線程句柄 )
  關閉線程句柄 (線程句柄 [i + 1])
  i = i + 2
.判斷循環尾 ()


.子程序 子程序1

num = num - 1
輸出調試文本 (num)

.子程序 子程序2

num = num - 1
輸出調試文本 (num)

調試輸出結果:

* 8
* 9
* 7
* 6
* 5
* 4
* 3
* 2
* 1
在執行一次:
* 8
* 7
* 9
* 6
* 5
* 4
* 3
* 2
* 1
* 0

我們可以明顯的發現問題,,雖然最終是把num減到了0,但是結果完全是亂的。

利用許可證解決上面的問題:

.版本 2
.支持庫 EThread

.程序集 窗口程序集1
.程序集變量 線程句柄, 整數型, , "10"
.程序集變量 num, 整數型
.程序集變量 許可證, 整數型

.子程序 __啟動窗口_創建完畢
.局部變量 i, 整數型

許可證 = 創建進入許可證 ()

i = 1
num = 10
.判斷循環首 (i ≤ 10)
  啟動線程 (&子程序1, , 線程句柄 )
  啟動線程 (&子程序2, , 線程句柄 [i + 1])
  關閉線程句柄 (線程句柄 )
  關閉線程句柄 (線程句柄 [i + 1])
  i = i + 2
.判斷循環尾 ()

.如果真 (num = 0)
  刪除進入許可證 (許可證)
.如果真結束


.子程序 子程序1

進入許可區 (許可證)
num = num - 1
退出許可區 (許可證)
輸出調試文本 (num)

.子程序 子程序2

進入許可區 (許可證)
num = num - 1
退出許可區 (許可證)
輸出調試文本 (num)

輸出結果:

* 9
* 8
* 7
* 6
* 5
* 4
* 3
* 2
* 1
* 0

用了許可證之后每次都是這樣的穩定結果。

詳解易語言線程同步

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

静海县| 阿坝县| 西贡区| 凌海市| 汤阴县| 鹤山市| 阿鲁科尔沁旗| 延边| 大石桥市| 岫岩| 犍为县| 江山市| 清水河县| 大连市| 南涧| 玛多县| 沐川县| 化隆| 那曲县| 彝良县| 民权县| 贡觉县| 宁海县| 鹤壁市| 宜昌市| 云浮市| 罗城| 辽中县| 汕尾市| 平武县| 巩留县| 榆树市| 廊坊市| 汉阴县| 大姚县| 洛阳市| 杨浦区| 司法| 兴文县| 蓝山县| 宁城县|