📄 aopintro.html
字号:
<html><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"><html> <head><title>Concurrent Programming in Java</title></head><BODY bgcolor=#ffffee vlink=#0000aa link=#cc0000><H1>Concurrent Programming in Java</H1>By <A HREF="javascript:if(confirm('http://g.oswego.edu/dl/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://g.oswego.edu/dl/'" tppabs="http://g.oswego.edu/dl/"> Doug Lea</A>. <P>Draft Version 2. Comments welcome! <P> Threads allow multiple concurrent activities to take place insidea single Java program or Applet. In non-threaded languages, there isonly one running thread, so there is only one activity going on in theprogram at a time. But in Java, you can create a new independentactivity whenever you like, by creating a thread and setting it inmotion. This tutorial and set of associated design patterns discusses different ways of thinking about, designing,and implementing multithreaded code in Java.<p><em>Prerequisites:</em> You should be familiar with:<ul> <li> Basic <a href="javascript:if(confirm('http://java.sun.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://java.sun.com/'" tppabs="http://java.sun.com/">Java</a> syntax and mechanics, including Applet construction. <li> Basic object-oriented design concepts. For a standard introduction, see Grady Booch's book <em>Object Oriented Analysis and Design</em>, Benjamin Cummings, 1994. For a more advanced system-oriented text, see the on-line version of the book <A HREF="javascript:if(confirm('http://g.oswego.edu/dl/oosdw3/index.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://g.oswego.edu/dl/oosdw3/index.html'" tppabs="http://g.oswego.edu/dl/oosdw3/index.html">Object Oriented System Development</A>. The <a href="javascript:if(confirm('http://galaxy.einet.net/galaxy/Engineering-and-Technology/Computer-Technology/Object-Oriented-Systems/ricardo-devis/oo.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://galaxy.einet.net/galaxy/Engineering-and-Technology/Computer-Technology/Object-Oriented-Systems/ricardo-devis/oo.html'" tppabs="http://galaxy.einet.net/galaxy/Engineering-and-Technology/Computer-Technology/Object-Oriented-Systems/ricardo-devis/oo.html"> Galaxy OO Page</a> is a good place to find other WWW OO resources. <li> Basic ideas of <A HREF="javascript:if(confirm('http://st-www.cs.uiuc.edu/users/patterns/patterns.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://st-www.cs.uiuc.edu/users/patterns/patterns.html'" tppabs="http://st-www.cs.uiuc.edu/users/patterns/patterns.html"> design patterns</A>, in particular those described in the Gamma, Helm, Johnson, and Vlissides <A HREF="javascript:if(confirm('http://st-www.cs.uiuc.edu/users/patterns/Books.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://st-www.cs.uiuc.edu/users/patterns/Books.html'" tppabs="http://st-www.cs.uiuc.edu/users/patterns/Books.html"> Design Patterns</A> book.</ul><h2>Contents</h2><p><strong> These documents are all under construction. Expectchanges. Comments and suggestions would be very welcome. </strong><p><dl> <dt> <a href="javaconc.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/javaconc.html">Java Concurrency Mechanics.</a> <dd> A tutorial introducing Java Runnables, thread creation and control, object synchronization, and concurrency control. <dt> Threads. <dd> <dl> <dt> <a href="when.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/when.html"> When to Create Threads</a> <dd> Some considerations and guidelines for using the following design patterns. <dt> <a href="service.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/service.html"> Service Threads and Gateways</a> <dd> Thread-based analogs of methods, and ways to organize them. <dt> <a href="waiters.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/waiters.html"> Waiter Threads </a> <dd> Client-constructed threads that wait out regular method calls. <dt> <a href="early.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/early.html"> Early Reply Threads</a> <dd> Server-constructed threads that are triggered by method calls. <dt> <a href="auton.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/auton.html"> Autonomous Loops</a> <dd> Threads running continuous loops. <dt> <a href="activityFlow.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/activityFlow.html"> Activity Flow</a> <dd> Multithreaded, multi-object activity sequences. Examples: <ul> <li> <a href="mondrian.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/mondrian.html"> Push Flow</a> </ul> </dl> <dt> Concurrent Objects. <dd> <dl> <dt> <a href="synchDesign.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/synchDesign.html">Designing Objects for Concurrency.</a> <dd> Introductory discussions of issues seen in the following design patterns. <dt> <a href="statebased.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/statebased.html">State-based Notifications</a> <dd> Synchronizing according to logical object state. <dt> <a href="delegnotif.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/delegnotif.html"> Delegating Notifications</a> <dd> Synchronization using subjects and observers. <dt> <a href="trans.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/trans.html"> Transactions</a> <dd> Synchronizing arbitrary code sequences. <dt> <a href="coordinators.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/coordinators.html">Coordinators</a> <dd> Synchronizing other objects via wrappers. <dt> <a href="acceptor.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/acceptor.html"> Acceptors and Event Loops </a> <dd> Objects that accept, decode and execute requests. <dt> <a href="balking.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/balking.html"> Balking</a> <dd> Avoiding waits by changing protocols. <dt> <a href="latches.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/latches.html"> Latches</a> <dd> Synchronization conditions that change value at most once. <dt> <a href="immut.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/immut.html"> Immutable Objects</a> <dd> Avoiding interference by avoiding change. </dl> <dt> <a href="models.html" tppabs="http://www.foi.hr/~dpavlin/java/mirrors/g.oswego.edu/dl/pats/models.html">Object Models for Concurrency.</a> <dd> Background on how to think about concurrent OO designs.</dl><p><a href="javascript:if(confirm('http://java.sun.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://java.sun.com/'" tppabs="http://java.sun.com/">Java </a>is a trademark of Sun Microsystems.<p> All of these documents are copyright © 1996 by the author.Some of them will be re-organized to become one part of a forthcoming bookon building reusable Java components.<hr><address><A HREF="javascript:if(confirm('http://g.oswego.edu/dl \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://g.oswego.edu/dl'" tppabs="http://g.oswego.edu/dl">Doug Lea</A></address><!-- hhmts start -->Last modified: Mon Feb 19 07:20:42 EST 1996<!-- hhmts end --></body> </html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -