簡體   English   中英

是newKieSession線程安全嗎?

[英]is newKieSession thread-safe?

我們在項目中使用了Drools kieSessions。 許多線程可以創建新的kieSession。 有時線程可以在創建會話時掛起。 因此問題是:

首先

  1. 是kieContainer.newKieSession線程安全操作?
  2. 懸掛的原因可能是骯臟的寫作或閱讀kie會話或類似的東西?

當我在實踐中檢查

newKieSession

不是線程安全的操作。

我在drools文檔中找不到任何明確的聲明,但我的理解是KieContainer是線程安全的,甚至足夠智能(有點默默/神奇地)更新自己(或者更確切地說它包含的KieBases)。

出於所有實際目的(調試/讀取源代碼),我認為所有KieContainer.newStatelessKieSession()KieContainer.newKieSession()方法都是線程安全的。

我不是100%確定updateToVersion()updateDependencyToVersion()方法,以及是否通過與KieContainer.newStatelessKieSession()newKieSession()方法並行更改kie容器。

在我們的應用程序中,我們設法將規則(以及模塊,基礎,會話及其配置)的修改邏輯從規則評估(使用newKieSession等方法)中分離出來,到目前為止看似很好,但我想要了解你是如何得出它不是線程安全的結論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM