如何让Posix线程在一段时间后完成其工作?

时间:2015-04-29 22:32:10

标签: c multithreading pthreads

我想让一个Posix线程在经过一段时间后完成它的工作。您可以在简单的C + Python伪代码中看到我的解决方案。但我认为这不是一个有效而准确的解决方案。实现这个目标的最佳途径是什么?

Mutex incrementLock
BigInteger n = 0
int milliToWork = 5000

Worker()
    int elapsedMilli = 0
    while elapsedMilli < milliToWork
        clock_t startClock = clock()
        Lock(incrementLock)
        n += 1
        Unlock(incrementLock)
        clock_t endClock = clock()
        elapsedMilli += (double)(endClock - startClock) / (double)CLOCKS_PER_SEC * 1000.0

main()
    int nThreads = 100
    Thread threads[nThreads]
    for i = 1 to nThreads
        ThreadCreate(threads[i], Worker)
    for i = 1 to nThreads
        ThreadJoin(threads[i])

0 个答案:

没有答案