The emergence of the robotics industry
Many researchers and entrepreneurs are working on Internet-based knowledge-organizing technologies that stretch traditional definitions of the Web. Lately, some have been calling the technologies "Web 3.0." But really, they're closer to "Web 2.1."
Typically, the name Web 2.0 is used by computer programmers to refer to a combination of a) improved communication between people via social-networking technologies, b) improved communication between separate software applications--read "mashups"--via open Web standards for describing and accessing data, and c) improved Web interfaces that mimic the real-time responsiveness of desktop applications within a browser window.
To see how these ideas may evolve, and what may emerge after Web 2.0, one need only look to groups such as MIT's Computer Science and Artificial Intelligence Laboratory, the World Wide Web Consortium, Amazon.com, and Google. All of these organizations are working for a smarter Web, and some of their prototype implementations are available on the Web for anyone to try. Many of these projects emphasize leveraging the human intelligence already embedded in the Web in the form of data, metadata, and links between data nodes. Others aim to recruit live humans and apply their intelligence to tasks computers can't handle. But none are ready for prime time.
synchronized
keyword to a method or wrapping a code section in a synchronized block. J2SE 5.0 adds several mechanisms for coordinating between different threads in an application. This added support is provided by the new java.util.concurrent package. The package includes classes that offer semaphores, barriers, latches, and exchangers -- this tip looks at each of these in more detail.
Object.wait()
, and Object.notify()
are insufficient for many programming tasks. This leads developers to implement their own high-level synchronization facilities, but given the difficulty of concurrency issues, their implementations may not be correct, efficient, or high quality. wait()
and notify()
are now enhanced with new and sophisticated mechanisms for working with threads. The new mechanisms are part of the java.util.concurrent
package, which aims to offer a standard set of concurrency utilities that will ease the task of developing multithreaded applications and servers. In addition, such standards will improve the quality of such applications. The package has been defined through the Java Community Process as JSR 166: Concurrency Utilities. java.util.concurrent
package and its subpackages.