亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

directory search
Ruby用戶指南 3、開始 4、簡單的例子 5、字符串 6、正則表達式 7、數(shù)組 8、回到那些簡單的例子 9、流程控制 10、迭代器 11、面向?qū)ο笏季S 12、方法 13、類 14、繼承 15、重載方法 16、訪問控制 17、單態(tài)方法 18、模塊 19、過程對象 20、變量 21、全局變量 22、實變量 23、局部變量 24、類常量 25、異常處理:rescue 26、異常處理:ensure 27、存取器 28、對象的初始化 29、雜項 RGSS入門教程 1、什么是RGSS 2、開始:最簡單的腳本 3、數(shù)據(jù)類型:數(shù)字 4、數(shù)據(jù)類型:常量與變量 5、數(shù)據(jù)類型:字符串 6、控制語句:條件分歧語句 7、控制語句:循環(huán) 8、函數(shù) 9、對象與類 10、顯示圖片 11、數(shù)組 12、哈希表(關(guān)聯(lián)數(shù)組) 13、類 14、數(shù)據(jù)庫 15、游戲?qū)ο?/a> 16、精靈的管理 17、窗口的管理 18、活動指令 19、場景類 Programming Ruby的翻譯 Programming Ruby: The Pragmatic Programmer's Guide 前言 Roadmap Ruby.new 類,對象和變量 容器Containers,塊Blocks和迭代Iterators 標準類型 深入方法 表達式Expressions 異常,捕捉和拋出(已經(jīng)開始,by jellen) 模塊 基本輸入輸出 線程和進程 當遭遇挫折 Ruby和它的世界 Ruby和Web開發(fā) Ruby Tk Ruby 和微軟的 Windows 擴展Ruby Ruby語言 (by jellen) 類和對象 (by jellen) Ruby安全 反射Reflection 內(nèi)建類和方法 標準庫 OO設計 網(wǎng)絡和Web庫 Windows支持 內(nèi)嵌文檔 交互式Ruby Shell 支持 Ruby參考手冊 Ruby首頁 卷首語 Ruby的啟動 環(huán)境變量 對象 執(zhí)行 結(jié)束時的相關(guān)處理 線程 安全模型 正則表達式 字句構(gòu)造 程序 變量和常數(shù) 字面值 操作符表達式 控制結(jié)構(gòu) 方法調(diào)用 類/方法的定義 內(nèi)部函數(shù) 內(nèi)部變量 內(nèi)部常數(shù) 內(nèi)部類/模塊/異常類 附加庫 Ruby變更記錄 ruby 1.6 特性 ruby 1.7 特性 Ruby術(shù)語集 Ruby的運行平臺 pack模板字符串 sprintf格式 Marshal格式 Ruby FAQ Ruby的陷阱
characters

Ruby 線程

線程是指共享內(nèi)存空間并可同時運行的控制流。使用線程便可進行并行編程。

現(xiàn)在Ruby的線程是用戶級的線程,可在所有平臺上實現(xiàn)相同的運作。下面就來看看線程的運作情況。

Ruby線程的運作方式

程序開始時同步生成的線程稱作main thread。當main thread結(jié)束時,其他所有線程以及整個程序也會結(jié)束。用戶的介入所引起的異常也會被送給main thread。

線程啟動時會指定一個塊。當這個塊結(jié)束運行時,該線程也會終結(jié)。塊的結(jié)束既包括正常結(jié)束又包括因錯誤等引起的異常結(jié)束。

Ruby的線程調(diào)度采用的是一種帶優(yōu)先順序的循環(huán)調(diào)度法。每隔一段時間或者當運行中的線程放棄權(quán)利的時候,就對進行調(diào)度。從可運行的線程中選出優(yōu)先級別最高的加以運行。

線程和異常

當某線程發(fā)生異常,且沒有被rescue捕捉到時,該線程通常會被無警告地終止。但是,若有其它線程因為Thread#join的關(guān)系一直等待該線程的話,則等待的線程同樣會被引發(fā)相同的異常。

begin
  t = Thread.new do
    Thread.pass    # 主線程確實在等join
    raise "unhandled exception"
  end
  t.join
rescue
  p $!  # => "unhandled exception"
end

使用下列3個方法,就可以讓解釋器在某個線程因異常而終止時中斷運行。

  • 啟動腳本時指定-d選項,并以調(diào)試模時運行。
  • Thread.abort_on_exception設置標志。
  • 使用Thread#abort_on_exception對指定的線程設定標志。

當使用上述3種方法之一后,整個解釋器就會被中斷。


Previous article: Next article: