纤程(FIBER)
Indy 10 還包含對(duì)纖程的支持。纖程是什么?簡(jiǎn)單來(lái)說(shuō),它也是 一個(gè)“線程”,但是它是由代碼控制的,而不是由操作系統(tǒng)控制的。實(shí)際上,可以認(rèn)為線程 是一個(gè)高級(jí)纖程。纖程和 Unix 用戶線程(Unix user threads)很相似。
線程是操作系統(tǒng)用來(lái)分配時(shí)間的基本單元。一個(gè)線程包含它自己的棧(stack),特定的寄存器 (processor registers) ,以及一個(gè)線程上下文(thread context)。線程們自動(dòng)地被操作系統(tǒng)調(diào)度時(shí)間。
通常來(lái)說(shuō),纖程在一個(gè)設(shè)計(jì)良好的多線程應(yīng)用程序中并沒(méi)有任何優(yōu)勢(shì)。然而當(dāng)纖程配合一個(gè)可以提供相關(guān)信息的的智能調(diào)度器(intelligent scheduler)使用的時(shí)候就可以大大的提高效率從而提高性能。
多個(gè)纖程可以使用單個(gè)線程來(lái)運(yùn)行。單個(gè)纖程也可以被多個(gè)線程運(yùn)行,盡管同時(shí)只能有一個(gè)線程運(yùn)行它。你可以在內(nèi)部運(yùn)行多個(gè)纖程。
所有的 Indy 控件,不管是客戶端還是服務(wù)器,都支持纖程,大部分都以種透明的方式。
目前 Indy 只在 Windows 下實(shí)現(xiàn)了纖程。
總結(jié)
- 上一篇: Oracle Grid 11.2.0.4
- 下一篇: 煮茶社区AVR开发板第二版[转]