In concurrent programming, exclusion refers to any technique that dynamically
locks certain blocks of code so multiple threads can't corrupt their shared
resources in ways that can cause integrity problems. In Java, exclusion has
meant using the synchronized keyword against a method or block of code to
control access to an object's lock.
Even though synchronization is a simple and concise way of controlling access
to critical code, there are some limitations:
While a thread is trying to acquire a lock, it can't be interrupted or
timed-out. Each lock can only test against a single implicit condition using
the wait() and notify() methods, which doesn't give developers much
flexibility when trying to react to particular program states. Starting with
J2SE 5.0 there's another way of protecting a code block from concurrent
access - the Lock interface and its implementatio... (more)
HTML forms are one of the best-known techniques for gathering data from a
user and submitting that data to a server. However, HTML forms are only
simple tools and don't natively support some of the features needed by
current Web applications such as sophisticated data validation. Also, the
user interface created by HTML forms is essentially hard coded for one
device, meaning the same form can't be easily re-tasked for, say, PDAs or
mobile phones.
The W3C XForms Recommendation is one way of addressing some of these issues.
(XForms is both plural and singular, so there's no XForm,... (more)