Create - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

Threads

  

Create

  

evaluate an expression in a new thread

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

Create( expr, opt1, opt2, ... )

Create( expr, var, opt1, opt2, ... )

Parameters

expr

-

(anything) the expression to evaluate in the new thread

var

-

(name) (optional) an output variable for the result

opt1, opt2, ...

-

optional arguments

Description

• 

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.

Examples

(1)

p := proc( limit )
   local start, now;
   global i;
   start := time[real]();
   now := start;
   i := now - start;
   
   while i < limit        
   do
       Threads:-Sleep( 0.1 );
       now := time[real]();
       i := now-start;
   end;

   return i;
end:

(2)

(3)

(4)

(5)

(6)

(7)

(8)

See Also

Threads

Threads[ConditionVariable]

Threads[Mutex]

Threads[Self]

Threads[Wait]

 


Download Help Document