start() - start or continue one or more threads. This takes out of suspend mode and into
run/evaluation mode.
start() and suspend() can be used as a very weak form of synchronization. Such use puts the onus on the programmer to know how to wake other threads up directly rather than having them signal a change in the value of a variable which the "would be suspended thread" can check and continue on given certain conditions. We include suspend() as a convenience and for completeness.
# establish two threads to be run later
tA = thread(Quote(fit <- lm(x,y)), start=F)
tB = thread(Quote(fit1 <- lm(x1,y1) ), start=F)
..
.. # some more processing
..
start(tA,tB) # start these two as simultaneously as possible
suspended.threads = suspend()
synchronize()
start(suspended.threads)