Чаще всего я использую это для синхронизации доступа к списку или карте, но я не хочу блокировать доступ ко всем методам объекта.
В следующем коде один поток, изменяющий список, не заблокирует ожидание потока, который изменяет карту. Если бы методы синхронизировались на объекте затем, то каждый метод должен был бы ожидать даже при том, что модификации, которые они делают, не конфликтовали бы.
private List<Foo> myList = new ArrayList<Foo>();
private Map<String,Bar) myMap = new HashMap<String,Bar>();
public void put( String s, Bar b ) {
synchronized( myMap ) {
myMap.put( s,b );
// then some thing that may take a while like a database access or RPC or notifying listeners
}
}
public void hasKey( String s, ) {
synchronized( myMap ) {
myMap.hasKey( s );
}
}
public void add( Foo f ) {
synchronized( myList ) {
myList.add( f );
// then some thing that may take a while like a database access or RPC or notifying listeners
}
}
public Thing getMedianFoo() {
Foo med = null;
synchronized( myList ) {
Collections.sort(myList);
med = myList.get(myList.size()/2);
}
return med;
}
SQL - это язык структурированных запросов. компьютерный язык базы данных разработан для управления данными в реляционных системы управления базами данных (СУБД).
PostgreSQL является объектно-реляционной система управления базами данных (ORDBMS). 1 Он выпущен под Лицензия в стиле BSD и поэтому бесплатна программного обеспечения. Как и многие другие программ с открытым исходным кодом, PostgreSQL - это не контролируется ни одной компанией, но имеет глобальное сообщество девелоперов и компаний по разработке это.
SQLite - это ACID-совместимый встроенный система управления реляционной базой данных содержится в относительно небольшом (~ 225 KB 1 ) Библиотека программирования на C. В исходный код SQLite находится в общественное достояние.
MySQL (произносится / maɪˌɛskjuːˈɛl / 1 Мой SQL, или «Мое продолжение» / maɪˈsiːkwəl /) является реляционным система управления базами данных (СУБД) 2 который насчитывает более 6 миллионов установки. 3 MySQL означает «Мой язык структурированных запросов». В программа работает как сервер, обеспечивающий многопользовательский доступ к ряду базы данных.
PostgreSQL, SQLite, MySQL, MS SQL - это всего лишь системы управления базами данных от разных поставщиков
Если вы хотите узнать о различных диалектах SQL ( Язык структурированных запросов )
Посмотрите здесь:
PostgreSQL, SQLite, MySQL, MSSQL, Sybase = системы управления реляционными базами данных (RDBMS).
SQL, TSQL = фактические языки, используемые вышеупомянутыми системами баз данных. Хотя (теоретически) SQL стандартизован, на практике у каждого поставщика есть свои собственные «расширения» (варианты) языка - это означает, что SQL, написанный для MySQL, может не работать, например, под Sybase.
Разные поставщики = разные идеи и концепции. Как и любая другая проблема программирования ... каждый разработчик решает ее по-своему, и это здорово. :-) Узнавать об этих небольших различиях, а иногда и о больших «путаницах» - это хорошо.