1. A method in a multiprocessor data processing system for asynchronous execution within a program, comprising:
executing code in a first thread in a first processor of the multiprocessor data processing system;
during the executing of the code, determining whether a first keyword exists in the code, the first keyword being a flag indicating that a subsequent code element following the first keyword may be executed out of order; and
executing the subsequent code element in a second thread in a second processor of the multiprocessor data processing system if the flag indicates that the subsequent code element may be executed out of order, such that the code and the subsequent code element are executed asynchronously with respect to one another.
2. The method of claim 1, wherein the subsequent code element is one of an instruction, a block, and a method.
3. The method of claim 1, wherein the first keyword is usable in both an internal definition of a method and a type definition for the method.
4. The method of claim 1, wherein the method is executed by a run-time interpreter.
5. The method of claim 4, wherein the run-time interpreter is a Java virtual machine.
6. The method of claim 1, wherein the second thread is a light weight thread.
7. A method in a multiprocessor data processing system for asynchronous execution within a program, comprising:
executing code in a first thread in a first processor of the multiprocessor data processing system;
determining whether a first keyword exists in the code, the first keyword indicating a code element that may be executed out of order;
executing the code element in a second thread in a second processor of the multiprocessor data processing system if the first keyword indicates the code element may be executed out of order, such that the code and the code element are executed asynchronously with respect to one another;
determining whether a second keyword exists in the code, the second keyword indicating that execution of the code element in the second thread must complete before a next code element immediately following the second keyword is executed; and
executing the next code element in the first thread after execution of the code element in the second thread completes if the second keyword indicates that execution of the code element in the second thread must complete before the next code element immediately following the second keyword is executed.
8. The method of claim 7, further comprising:
determining whether a third keyword exists in the code element, the third keyword indicating a statement that may be executed out of order; and
executing the statement in a third thread.
9. An apparatus in a multiprocessor data processing system for asynchronous execution within a program, comprising:
first execution means for executing, by the apparatus, code in a first thread;
determination means for determining, by the apparatus, whether a first keyword exists in the code, the first keyword being a type definition for a subsequent code element indicating that the subsequent code element following the first keyword may be executed out of order; and
second execution means for executing, by the apparatus, the subsequent code element in a second thread, such that the code and the subsequent code element are executed asynchronously with respect to one another.
10. The apparatus of claim 9, wherein the subsequent code element is a method.
11. The apparatus of claim 9, wherein the first keyword is usable in both an internal definition of a method and a type definition for the method.
12. The apparatus of claim 9, wherein the first thread is executed on a first processor and the second thread is executed on a second processor.
13. The apparatus of claim 9, wherein the second thread is a light weight thread.
14. An apparatus in a multiprocessor data processing system for asynchronous execution within a program, comprising:
first execution means for executing, by the apparatus, code in a first thread;
determination means for determining, by the apparatus, whether a first keyword exists in the code, the first keyword indicating a code element that may be executed out of order;
second execution means for executing, by the apparatus, the code element in a second thread, such that the code and the code element are executed asynchronously with respect to one another;
means for determining, by the apparatus, whether a second keyword exists in the code, the second keyword indicating that execution of the code element in the second thread must complete before a next code element immediately following the second keyword is executed; and
means for executing, by the apparatus, the next code element in the first thread after execution of the code element in the second thread completes.
15. The apparatus of claim 14, further comprising:
means for determining, by the apparatus, whether a third keyword exists in the code element, the third keyword indicating a statement that may be executed out of order; and
means for executing, by the apparatus, the statement in a third thread.
16. An apparatus within a multiprocessor data processing system for asynchronous execution within a program, comprising:
an interpreter; and
the program including (i) a first keyword indicating that a code element following the first keyword may be executed out of order, and (ii) at least one other code element,
wherein the interpreter: (1) creates a first thread and executes the at least one other code element in the first thread to produce a first result, and (ii) upon detecting the first keyword, creates a light weight thread and executes the code element in the light weight thread to produce a second result, such that the code element executes asynchronously with respect to the at least one other code element within the program.
17. The apparatus of claim 16, wherein the interpreter is a Java virtual machine.
18. A computer program product, tangibly embodied in a recordable-type computer readable medium, for asynchronous execution within a program, comprising:
instructions for executing code in a first thread;
instructions for determining, during the executing of the code, whether a first keyword exists in the code, the first keyword being a flag indicating that a subsequent code element following the first keyword may be executed out of order; and
instructions for executing the subsequent code element in a second thread, such that the code and the subsequent code element are executed asynchronously with respect to one another.
19. The computer program product of claim 18, wherein the first thread is executed on a first processor and the second thread is executed on a second processor.
20. A computer program product, tangibly embodied in a recordable-type computer readable medium, for asynchronous execution within a program, comprising:
instructions for executing code in a first thread;
instructions for determining whether a first keyword exists in the code, the first keyword indicating a code element that may be executed out of order;
instructions for executing the code element in a second thread, such that the code and the code element are executed asynchronously with respect to one another;
instructions for determining whether a second keyword exists in the code, the second keyword indicating that execution of the code element in the second thread must complete before a next code element immediately following the second keyword is executed; and
instructions for executing the next code element in the first thread after execution of the code element in the second thread completes.
21. The computer program product of claim 20, further comprising:
instructions for determining whether a third keyword exists in the code element, the third keyword indicating a statement that may be executed out of order; and
instructions for executing the statement in a third thread.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1-17. (canceled)
18. Method for executing in a player device a software application relating to an audio-visual presentation,
wherein the audio-visual presentation is one of a plurality of titles stored on a first storage medium, the method comprising the steps of
detecting a title selection request, and in response to the title selection request performing the steps of
generating or updating a virtual file system according to the selected title;
reading, within the virtual file system, data from the first storage medium, the data comprising audio-visual presentation data and software application data, the software application data having a language label associated;
comparing the language label associated to the read software application data with a preferred language identifier;
selecting, within said virtual file system, software application data that have associated a language label matching the preferred language identifier;
caching the selected software application data that have associated a language label matching the preferred language identifier in a cache memory within the player device;
generating an audio-visual presentation from said audio-visual presentation data; and
executing a software application based on the cached data while generating said audio-visual presentation, wherein the software application is distinct from the audio-visual presentation and modifies the audio-visual presentation.
19. Storage medium having stored thereon a software application relating to an audio-visual presentation,
wherein the audio-visual presentation is one of a plurality of titles stored on a first storage medium, the software application having instructions that allow a playback device to perform the steps of
detecting a title selection request, and in response to the title selection request performing the steps of
generating or updating a virtual file system according to the selected title;
reading, within the virtual file system, data from the first storage medium, the data comprising audio-visual presentation data and software application data, the software application data having a language label associated;
comparing the language label associated to the read software application data with a preferred language identifier;
selecting, within said virtual file system, software application data that have associated a language label matching the preferred language identifier;
caching the selected software application data that have associated a language label matching the preferred language identifier in a cache memory within the player device;
generating an audio-visual presentation from said audio-visual presentation data; and
executing a software application based on the cached data while generating said audio-visual presentation, wherein the software application is distinct from the audio-visual presentation and modifies the audio-visual presentation.