Metered concurrency: Difference between revisions

Content deleted Content added
m →‎{{header|D}}: fixed module name
Rahul (talk | contribs)
Line 334:
 
Thread joining is automatic by default.
 
=={{header|UnixPipes}}==
The number of concurrent jobs can be set by issuing that many echo '1''s at the begining to sem.
 
rm -f sem ; mkfifo sem
 
acquire() {
x='';while test -z "$x"; do read x; done;
}
 
release() {
echo '1'
}
 
job() {
n=$1; echo "Job $n acquired Semaphore">&2 ; sleep 2; echo "Job $n released Semaphore">&2 ;
}
 
( acquire < sem ; job 1 ; release > sem ) &
( acquire < sem ; job 2 ; release > sem ) &
( acquire < sem ; job 3 ; release > sem ) &
 
echo 'Initialize Jobs' >&2 ; echo '1' > sem