Kilim基于角色的消息傳遞框架
Kilim 是一種 Java 消息傳遞框架,提供了超輕量級的線程,推動了線程之間迅速、安全、無需復(fù)制的消息傳遞的實(shí)現(xiàn)。
Kilim 使用 Java 編寫,融入了角色模型的概念。在 Kilim 中,“角色” 是使用 Kilim 的 Task 類型來表示的。Task 是輕量型的線程,它們通過 Kilim 的 Mailbox 類型與其他 Task 通信。
Mailbox 可以接受任何類型的 “消息”。例如,Mailbox 類型接受 java.lang.Object。Task 可以發(fā)送 String 消息或者甚至自定義的消息類型,這完全取決于您自己。
在 Kilim 中,所有實(shí)體都通過方法簽名捆綁在一起,如果您需要同時執(zhí)行幾項(xiàng)操作,可以在一個方法中指定該行為,擴(kuò)大該方法的簽名以拋出 Pausable。因此,在 Kilim 中創(chuàng)建并發(fā)類就像在 Java 中實(shí)現(xiàn) Runnable 或擴(kuò)展 Thread 一樣簡單。只是使用 Runnable 或 Thread 的附加實(shí)體(比如關(guān)鍵字 synchronized)更少了。
最后,Kilim 的魔力是由一個稱為 weaver 的后期進(jìn)程來實(shí)現(xiàn)的,該進(jìn)程轉(zhuǎn)換類的字節(jié)碼。包含 Pausable throws 字句的方法在運(yùn)行時由一個調(diào)度程序處理,該調(diào)度程序包含在 Kilim 庫中。該調(diào)度程序處理有限數(shù)量的內(nèi)核線程??梢岳么斯ぞ邅硖幚砀嗟妮p量型線程,這可以最大限度地提高上下文切換和啟動的速度。每個線程的堆棧都是自動 管理的。
在本質(zhì)上,Kilim 使創(chuàng)建并發(fā)進(jìn)程變得輕松而簡單:只需從 Kilim 的 Task 類型進(jìn)行擴(kuò)展并實(shí)現(xiàn) execute 方法。編譯新創(chuàng)建的支持并發(fā)性的類之后,對其運(yùn)行 Kilim 的 weaver,您會實(shí)現(xiàn)顯著的性能提升!
Kilim 最初是一種外來語言,但它帶來了巨大的回報(bào)。角色模型(以及后來的 Kilim)使編寫依賴于類似對象的異步操作對象變得更加簡單和安全。您可以 使用 Java 的基本線程模型進(jìn)行同樣的操作(比如擴(kuò)展 Thread),但這更具挑戰(zhàn)性,因?yàn)樗鼤⒛鷰Щ劓i和同步的世界中。簡而言之,將 您的并發(fā)編程模型轉(zhuǎn)換為角色使多線程應(yīng)用程序更容易編碼。
