Allocates a new Thread
object so that it has target
as its run object, has the specified name
as its name,
and 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.
group
| the thread group. If null and there is a security
manager, the group is determined by SecurityManager.getThreadGroup().
If there is not a security manager or
SecurityManager.getThreadGroup() returns null , the group
is set to the current thread's thread group. | |
target
| the object whose run method is invoked when this thread
is started. If null , this thread's run method is invoked. | |
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. |
SecurityException
| if the current thread cannot create a thread in the specified thread group |
Diagram: Thread