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

Online Help

All Products    Maple    MapleSim


Threads[Mutex]

  

Create

  

create a new mutex

 

Calling Sequence

Description

Examples

Calling Sequence

Create()

Description

• 

The Create command is used to create a new Mutex.  This command returns an integer identifier that is used to represent the mutex.

• 

The Create command does not accept any arguments.

• 

Once created, the mutex can be locked and unlocked using the Lock and Unlock commands.

• 

When a mutex is no longer needed, it should be destroyed using the Destroy command.  This will release all the resources used by the mutex.

• 

For more information on using mutexes, see the Mutex help page.

Examples

> 

p := proc( m )
   global count;
   print( count );
   count := count+1;
end proc;

p≔procmglobalcount;print⁡count;count ≔ count+1end proc

(1)
> 

count≔1

count≔1

(2)

Create ten threads running the p function.

> 

ThreadsWait⁡seq⁡ThreadsCreate⁡p⁡m,i=1..10

1

2

3

4

5

6

6

8

8

10

(3)

Without mutexes the same value may be printed multiple times.  (You may have to execute this command multiple times to see this occur.)

> 

p := proc( m )
   global count;
   Threads[Mutex][Lock]( m );

   print( count );
   count := count+1;

   Threads[Mutex][Unlock]( m );
end proc;

p≔procmglobalcount;Threads[Mutex][Lock]⁡m;print⁡count;count ≔ count+1;Threads[Mutex][Unlock]⁡mend proc

(4)
> 

count≔1

count≔1

(5)
> 

m≔ThreadsMutexCreate⁡

m≔1

(6)

Create ten threads running the new p function.

> 

ThreadsWait⁡seq⁡ThreadsCreate⁡p⁡m,i=1..10:

1

2

3

4

5

6

7

8

9

10

(7)

Using a mutex allows you to control access to the shared variable.  Thus each number will be printed only once.

> 

ThreadsMutexDestroy⁡m

See Also

Threads

Threads[Create]

Threads[Mutex]

Threads[Mutex][Destroy]

Threads[Mutex][Lock]

Threads[Mutex][Unlock]