Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
24
Task/Metered-concurrency/PureBasic/metered-concurrency.basic
Normal file
24
Task/Metered-concurrency/PureBasic/metered-concurrency.basic
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
#Threads=10
|
||||
#Parallels=3
|
||||
Global Semaphore=CreateSemaphore(#Parallels)
|
||||
|
||||
Procedure Worker(*arg.i)
|
||||
WaitSemaphore(Semaphore)
|
||||
Debug "Thread #"+Str(*arg)+" active."
|
||||
Delay(Random(2000))
|
||||
SignalSemaphore(Semaphore)
|
||||
EndProcedure
|
||||
|
||||
; Start a multi-thread based work
|
||||
Dim thread(#Threads)
|
||||
For i=0 To #Threads
|
||||
thread(i)=CreateThread(@Worker(),i)
|
||||
Next
|
||||
Debug "Launcher done."
|
||||
|
||||
; Wait for all threads to finish before closing down
|
||||
For i=0 To #Threads
|
||||
If IsThread(i)
|
||||
WaitThread(i)
|
||||
EndIf
|
||||
Next
|
||||
Loading…
Add table
Add a link
Reference in a new issue