Maple für Professional
Maple für Akademiker
Maple für Studenten
Maple Personal Edition
Maple Player
Maple Player für iPad
MapleSim für Professional
MapleSim für Akademiker
Maple T.A. - Testen & beurteilen
Maple T.A. MAA Placement Test Suite
Möbius - Online-Courseware
Machine Design / Industrial Automation
Luft- und Raumfahrt
Fahrzeugtechnik
Robotics
Energiebranche
System Simulation and Analysis
Model development for HIL
Anlagenmodelle für den Regelungsentwurf
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematikausbildung
Technik
Allgemein- und berufsbildende Schulen
Testen und beurteilen
Studierende
Finanzmodelle
Betriebsforschung
Hochleistungsrechnen
Physik
Live-Webinare
Aufgezeichnete Webinare
Geplante Veranstaltungen
MaplePrimes
Maplesoft-Blog
Maplesoft-Mitgliedschaft
Maple Ambassador Program
MapleCloud
Technische Whitepapers
E-Mail Newsletters
Maple-Bücher
Math Matters
Anwendungs-Center
MapleSim Modell-Galerie
Anwenderberichte
Exploring Engineering Fundamentals
Lehrkonzepte mit Maple
Maplesoft Welcome-Center
Resource-Center für Lehrer
Help-Center für Studierende
Threads[Mutex][Lock] - mutexをロックする
使い方
Lock( mutexId )
パラメータ
mutexId - ミューテックス識別子 (整数)
説明
複数のスレッドが 1 つのミューテックスのロックをしようとしているとき、スレッドがロックをロックを得る保証はありません。これは、他のすれっどがロックを得るために待機する間、スレッドがミューテックスをアンロックして再びロックすることが可能なことを意味します。
Lock コマンドは現在のスレッドの識別子 mutexId を持つミューテックスをロックします。 mutexId を持つスレッドがロックしているものがないとき、Lock をすぐに行います。スレッドが既にロックされているときは、 Lock はミューテックスがアンロックされるまで待機します。Lock は現在のスレッドに対してロックすることを試みます。
ロックされているミューテックスを開放するためには、Unlock コマンドを使います。
複数のスレッドは 1 つのミューテックスをロックしようとするとき、
ミューテックスの使い方について詳しくは Mutex を参照ください。
例
p := proc( m ) global count; print( count ); count := count+1; end proc;
p := proc(m) global count; print(count); count := count + 1 end proc
count := 1;
count := 1
関数 p を 10 個のスレッドで作成します。
Threads:-Wait( seq( Threads:-Create( p(m) ), i=1..10 ) );
1
2
3
4
5
6
8
10
ミューテックスなしで、同じ値を複数プリントします。
p := proc( m ) global count; Threads:-Mutex:-Lock( m ); print( count ); count := count+1; Threads:-Mutex:-Unlock( m ); end proc;
p := proc(m) global count; Threads:-Mutex:-Lock(m); print(count); count := count + 1; Threads:-Mutex:-Unlock(m) end proc
m := Threads:-Mutex:-Create();
m := 1
新たに関数 p を 10 個のスレッドで作成します。
Threads:-Wait( seq( Threads:-Create( p(m) ), i=1..10 ) ):
7
9
ミューテックスを使って共有変数へのアクセスを制御します。このとき一度にプリントします。
Threads:-Mutex:-Destroy( m );
参照
Threads, Threads[Mutex], Threads[Mutex][Create], Threads[Mutex][Destroy], Threads[Mutex][Lock], Threads[Mutex][Unlock]
Download Help Document