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

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

Ruby 線程

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

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

Ruby線程的運(yùn)作方式

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

線程啟動(dòng)時(shí)會(huì)指定一個(gè)塊。當(dāng)這個(gè)塊結(jié)束運(yùn)行時(shí),該線程也會(huì)終結(jié)。塊的結(jié)束既包括正常結(jié)束又包括因錯(cuò)誤等引起的異常結(jié)束。

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

線程和異常

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

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

使用下列3個(gè)方法,就可以讓解釋器在某個(gè)線程因異常而終止時(shí)中斷運(yùn)行。

  • 啟動(dòng)腳本時(shí)指定-d選項(xiàng),并以調(diào)試模時(shí)運(yùn)行。
  • Thread.abort_on_exception設(shè)置標(biāo)志。
  • 使用Thread#abort_on_exception對(duì)指定的線程設(shè)定標(biāo)志。

當(dāng)使用上述3種方法之一后,整個(gè)解釋器就會(huì)被中斷。


上一篇: 下一篇: