If we wants to make programmatically Connection management, connection may be Database or TCP Socket or JMS or other. Instead of establishing connection every time for every SQL command, we can cache the connection for future use. Once the usage of connection usage is completed then we can take connection back to pool. For instance, We have established 20 connections, but 50 SQL commands has to be run in the given point of time. These 20 connections has to be alotted to first 20 SQL commands to run and whenever SQL command is completed then connection will be used for rest of SQL commands.
We have to maintain a mark for each connection that whether that connection is get used or not. Two methods has to be used to acquire and release the resource. Everything perfect, who will take care of filtering and ordering the thread entry, how thread state managed. For these questions Semaphore is the right answer, here is the code snippet
class ConnectionPool {
private static final int MAX_AVAILABLE = 100;
private final Semaphore available = new Semaphore(MAX_AVAILABLE, true);
public Object getConnection() throws InterruptedException {
available.acquire();
return getNextAvailableItem();
}
public void releaseConnection(Object x) {
if (markAsUnused(x))
available.release();
}
protected Object[] connections = ... whatever kinds of connections being managed
protected boolean[] used = new boolean[MAX_AVAILABLE];
protected synchronized Object getNextAvailableItem() {
for (int i = 0; i < MAX_AVAILABLE; ++i) {
if (!used[i]) {
used[i] = true;
return connections[i];
}
}
return null; // not reached
}
protected synchronized boolean markAsUnused(Object item) {
for (int i = 0; i < MAX_AVAILABLE; ++i) {
if (item == connections[i]) {
if (used[i]) {
used[i] = false;
return true;
} else
return false;
}
}
return false;
}
}
12 comments:
manisa
sakarya
sivas
van
elazığ
HLE2UF
https://titandijital.com.tr/
sakarya parça eşya taşıma
aksaray parça eşya taşıma
urfa parça eşya taşıma
kocaeli parça eşya taşıma
DZW4P
Tokat Lojistik
Konya Lojistik
Mersin Lojistik
Karabük Lojistik
Samsun Lojistik
RFWP
adana evden eve nakliyat
bolu evden eve nakliyat
diyarbakır evden eve nakliyat
sinop evden eve nakliyat
kilis evden eve nakliyat
QP0QN
FD98D
Sakarya Evden Eve Nakliyat
Osmaniye Parça Eşya Taşıma
Mersin Evden Eve Nakliyat
Denizli Parça Eşya Taşıma
Diyarbakır Lojistik
BF99A
Bursa Şehir İçi Nakliyat
Altındağ Fayans Ustası
Çerkezköy Çelik Kapı
Erzincan Evden Eve Nakliyat
Konya Şehir İçi Nakliyat
Antep Parça Eşya Taşıma
Batman Lojistik
Adıyaman Şehir İçi Nakliyat
Kilis Şehir İçi Nakliyat
74D0E
Ardahan Şehir İçi Nakliyat
Denizli Lojistik
Batman Lojistik
Bartın Lojistik
Gümüşhane Lojistik
Ünye Asma Tavan
Bilecik Şehirler Arası Nakliyat
Keçiören Boya Ustası
Mardin Evden Eve Nakliyat
ADB2C
Ordu Lojistik
Kalıcı Makyaj
Bingöl Lojistik
Konya Lojistik
Bayburt Şehirler Arası Nakliyat
Çerkezköy Mutfak Dolabı
Ünye Kurtarıcı
Manisa Şehirler Arası Nakliyat
Siirt Parça Eşya Taşıma
FB538
Ordu Rastgele Görüntülü Sohbet Ücretsiz
ücretsiz görüntülü sohbet uygulamaları
şırnak canlı sohbet
tunceli rastgele görüntülü sohbet
Nevşehir Tamamen Ücretsiz Sohbet Siteleri
Şırnak Mobil Sohbet Bedava
sohbet uygulamaları
bedava görüntülü sohbet sitesi
uşak görüntülü sohbet canlı
5C51A
chat sohbet
Giresun Yabancı Görüntülü Sohbet Siteleri
bingöl en iyi görüntülü sohbet uygulaması
ığdır Sesli Sohbet Mobil
Hakkari Kadınlarla Rastgele Sohbet
isparta telefonda rastgele sohbet
konya en iyi ücretsiz sohbet siteleri
ucretsiz sohbet
Edirne Bedava Görüntülü Sohbet Sitesi
20DA3
parasız görüntülü sohbet uygulamaları
mersin canlı sohbet siteleri ücretsiz
manisa nanytoo sohbet
edirne ücretsiz sohbet uygulaması
mersin canli goruntulu sohbet siteleri
niğde telefonda rastgele sohbet
hatay telefonda görüntülü sohbet
rastgele canlı sohbet
canlı sohbet
50E7DD1CB8
telegram ücretli şov
Post a Comment