Drools7多執行緒,高併發測試總結

2021-09-11 21:32:23 字數 1079 閱讀 6827

講到多執行緒,就不得不多提乙個概念,multithreaded rule engine,在官方文件2.3.1.2中,介紹多執行緒規則引擎,官方也明確說明該功能還處於實驗階段,

該功能預設處於關閉狀態,在kiebaseconfiguration中設定,該功能由kieservices提供,我們看一下官方給出的**。注:這是在使用kmodule.xml或在**中使用kieservices時的賦值方式,使用kiehelper則不需要。

通過kieservices 建立kiebaseconfiguration,通過命名的方式開啟,建立kiebean時匯入。

或者通過系統屬性drools.multithreadevaluation = true

注:目前這樣的多執行緒規則不支援  queries、salience、agenda-group,如果這些屬性存在規則中,則會自動切換回單執行緒模式,按照官方的說法,在編譯過程將發出警告資訊,還有一些特殊的情況,就是不使用自定義的排序,規則也有一些預設的排序,就會出來可能會執行myrulefile1也有可能會執行myrulefile2,有可能執行一部分myrulefile1與myrulefile2,總而言之,規則整個執行下來的過程之和,符合呼叫規則的次數。

同 kiehelper 同乙個kiesession有狀態

不同 kiehelper 不同kiesession有狀態

不同 kiehelper

同 kiehelper 同乙個statelesskiesession無狀態

同 kiehelper 不同乙個statlelesskiesession無狀態

不同 kiehelper 不同statelesskiesession無狀態

不同 kiehelper 不同kiesession有狀態

多執行緒與高併發7 容器

queue佇列 主要就是為高併發而存在,有進有出。deque雙關佇列 頭和尾都可以訪問 blockingqueue阻塞佇列 priorityqueue優先佇列 按照順序先入先出 delayqueue延遲佇列 佇列中的物件只有到期之後才能被取走 一代同步容器,所有的方法均上鎖,基本不用 hashtab...

多執行緒高併發

修飾靜態方法鎖的是class,非靜態鎖方法鎖的是this,只有拿到這個物件才可以繼續執行 synchronized是可重入鎖 執行緒1的方法1呼叫執行緒2的方法2,判斷是同一把鎖,在同乙個執行緒,可以呼叫。synchronized的鎖公升級 hotsport 鎖公升級過程 保證執行緒可見性 mesi...

多執行緒高併發

個人總結,帶有個人主觀,請選擇性 1,實現 runable 2,使用 thread 3,執行緒池建立 executorse newcachedthreadpool 其實哪有那麼多建立方式,本質上都是實現了runable 介面。只列出大部分使用的方法,並未代表所有執行緒方法,後續會新增實際的例子,以供...