Java, Eclipse Plugin Development and best software development practices
Showing posts with label JVM stackSize. Show all posts
Showing posts with label JVM stackSize. Show all posts
Thursday, May 9, 2013
Setting stack size to a Java thread
From JavaDoc
Allocates a new
This constructor is identical to
The effect of the stackSize parameter, if any, is highly platform dependent.
On some platforms, specifying a higher value for the stackSize parameter may allow a thread to achieve greater recursion depth before throwing a
The virtual machine is free to treat the stackSize parameter as a suggestion. If the specified value is unreasonably low for the platform, the virtual machine may instead use some platform-specific minimum value; if the specified value is unreasonably high, the virtual machine may instead use some platform-specific maximum. Likewise, the virtual machine is free to round the specified value up or down as it sees fit (or to ignore it completely).
Specifying a value of zero for the stackSize parameter will cause this constructor to behave exactly like the Thread(ThreadGroup, Runnable, String) constructor.
Due to the platform-dependent nature of the behavior of this constructor, extreme care should be exercised in its use. The thread stack size necessary to perform a given computation will likely vary from one JRE implementation to another. In light of this variation, careful tuning of the stack size parameter may be required, and the tuning may need to be repeated for each JRE implementation on which an application is to run.
Implementation note: Java platform implementers are encouraged to document their implementation's behavior with respect to the stackSize parameter.
Allocates a new
Thread
object so that it has target
as its run object, has the specified name
as its name, belongs to
the thread group referred to by group
, and has the specified
stack size.
This constructor is identical to
Thread(ThreadGroup,
Runnable, String)
with the exception of the fact that it allows the
thread stack size to be specified. The stack size is the approximate number of
bytes of address space that the virtual machine is to allocate for this thread's
stack.The effect of the stackSize parameter, if any, is highly platform dependent.
On some platforms, specifying a higher value for the stackSize parameter may allow a thread to achieve greater recursion depth before throwing a
StackOverflowError
.
Similarly, specifying a lower value may allow a greater number of threads to
exist concurrently without throwing an OutOfMemoryError
(or other internal error). The details of the relationship between the value of
the stackSize parameter and the maximum recursion depth and concurrency
level are platform-dependent. On some platforms, the value of the
stackSize parameter may have no effect whatsoever.
The virtual machine is free to treat the stackSize parameter as a suggestion. If the specified value is unreasonably low for the platform, the virtual machine may instead use some platform-specific minimum value; if the specified value is unreasonably high, the virtual machine may instead use some platform-specific maximum. Likewise, the virtual machine is free to round the specified value up or down as it sees fit (or to ignore it completely).
Specifying a value of zero for the stackSize parameter will cause this constructor to behave exactly like the Thread(ThreadGroup, Runnable, String) constructor.
Due to the platform-dependent nature of the behavior of this constructor, extreme care should be exercised in its use. The thread stack size necessary to perform a given computation will likely vary from one JRE implementation to another. In light of this variation, careful tuning of the stack size parameter may be required, and the tuning may need to be repeated for each JRE implementation on which an application is to run.
Implementation note: Java platform implementers are encouraged to document their implementation's behavior with respect to the stackSize parameter.
- Parameters:
- group the thread group.
- target the object whose
run
method is called. - name the name of the new thread.
- stackSize the desired stack size for the new thread, or zero to indicate that this parameter is to be ignored.
- Throws:
- SecurityException - if the current thread cannot create a thread in the specified thread group.
- Since:
- 1.4
Subscribe to:
Posts (Atom)