我如何知道线程是否仍在工作?

问题描述

我目前正在开发一个程序,在该程序中,我使用线程进入目录,以查找磁盘的总使用量。我有一个似乎找不到答案的问题。

我有一个功能来查看当前目录是否包含另一个目录,如果确实存在,我想将新目录的路径推送到堆栈上。如果线程将路径推到新目录,则另一个线程将通过该目录进行搜索

我要解决的问题是为线程找到正确的条件,我希望线程搜索工作(如果有任何路径可以搜索堆栈,如果堆栈上有任何值)任何线程都在工作。

我在想这样的事情:

While(any thread is working){
     while(stack != empty){
          do work
     }
     sleep()
}

我不知道如何知道当前是否有任何线程正在“工作”,这是发送work_complete标志的最简单方法,或者我可以为此使用信号量。我真的找不到任何类似的问题,只是当它们使用线程打印/计数某些东西时只是“简单”的例子。

编辑:

我的问题的一个更简单的版本是,我怎么知道我的线程是否在“工作”功能内?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)