Maple Student Edition
Maple Personal Edition
Maple Player for iPad
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Other Application Areas
High Schools & Two-Year Colleges
Testing & Assessment
High Performance Computing
Maple Ambassador Program
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
Threads[Create] - evaluate an expression in a new thread
Create( expr, opt1, opt2, ... )
Create( expr, var, opt1, opt2, ... )
(anything) the expression to evaluate in the new thread
(name) (optional) an output variable for the result
opt1, opt2, ...
The Create command is used to start evaluating a Maple expression in a new thread. This command returns an integer identifier for the new thread.
When the evaluation of expr is finished, the thread terminates. If var is given, the result of the evaluation is assigned to var.
The identifier returned by Create can be passed into Wait.
Due to the unique functionality of Create, there are special evaluation rules for expr. If expr is a procedure, then the arguments to the procedure are evaluated in the current thread, but the function call itself is evaluated in the new thread. If expr is not a procedure, then it is evaluated entirely in the new thread.
One side effect of these rules is that if expr is a function call, with another function call as an argument, the argument will be evaluated in the current thread, not the new thread.
There is one optional argument: stacksize
stacksize = integer
The stacksize optional argument specifies the maximum amount of stack space available to the new thread. The maximum stack size of a thread is fixed at thread creation time and cannot be changed. By default the stack size is the minimum allowed stack, which is platform dependent.
p := proc( n )
for j from 1 to n
i := j;
Threads, Threads[ConditionVariable], Threads[Mutex], Threads[Self], Threads[Wait]
Download Help Document