AGS 物件池和狀態概要

2021-08-30 22:58:24 字數 590 閱讀 5152

ags是arcgis server的簡稱,ags開發首先要理解物件池和狀態(object pooling and gis server state),ags幫助文件對此有很詳細的描述,想在短時間內看完密密麻麻的英文本元、碎塊**和,有時會感覺有點頭皮發麻,如果你對ags或ae開發有初步了解了,就花一點點時間看完下面的精簡概要,適合當作隨手的課堂筆記(注:概要筆記,不適合死抓概念討論正確與否)。

文章標題有兩個名詞:物件池、狀態,就從他們入手。

物件池,和資料庫連線池概念類似,無非就是用乙個大的容器,將一些已建立好的物件放入其中,隨時聽從排程,當請求的物件小於等於容器中最大物件數的時候,ags服務無需請求新的server物件,如果請求數大於容器中的物件了,sorry,只能耐心等待。獲得請求速度的提公升,必然要損失連線數的限制,有得必有失。

狀態,辭海中對於它的解釋太多,在這裡,認為server在有狀態(stateful)情況下是可以改變的,無狀態(stateless)情況下是不能改變的,因為它沒有狀態可以改:)我們所說的改變,指的是mxd服務裡圖層是否可見、渲染方式更改、資料的編輯。

現在將兩者結合起來,ags文件給出了如下建議:

有狀態物件和狀態物件

本部落格 有狀態就是有資料儲存功能。有狀態物件 stateful bean 就是有例項變數的物件 可以儲存資料,是非執行緒安全的。在不同方法呼叫間不保留任何狀態。其實就是有資料成員的物件。無狀態就是一次操作,不能儲存資料。無狀態物件 stateless bean 就是沒有例項變數的物件。不能儲存資料...

物件的鎖池和等待池

鎖池 假設執行緒a已經擁有了某個物件 注意 不是類 的鎖,而其它的執行緒想要呼叫這個物件的某個synchronized方法 或者synchronized塊 由於這些執行緒在進入物件的synchronized方法之前必須先獲得該物件的鎖的擁有權,但是該物件的鎖目前正被執行緒a擁有,所以這些執行緒就進入...

Python中小整數物件池和大整數物件池

1.小整數物件池 整數在程式中的使用非常廣泛,python為了優化速度,使用了小整數物件池,避免為整數頻繁申請和銷毀記憶體空間。python 對小整數的定義是 5,256 這些整數物件是提前建立好的,不會被垃圾 在乙個 python 的程式中,無論這個整數處於legb中的哪個位置,所有位於這個範圍內...