Multithreading 暂停/恢复任务

Multithreading 暂停/恢复任务,multithreading,language-agnostic,mutex,Multithreading,Language Agnostic,Mutex,我想问一个关于多线程的问题。例如,我锁定了一个互斥锁并恢复了任务,然后我想挂起它,我的问题是,我应该在挂起它之前解锁互斥锁吗?所以当我用互斥锁再次恢复时,它会成功恢复吗 我刚开始学习多线程的东西,我很难理解其中的概念 非常感谢。通常,只要需要对正在同步的对象进行“互斥”控制,您就需要保持互斥。我要说的是,不断地抓住它,释放它是有问题的。也许能更全面地解释你在做什么?我的方法是异步执行,而不是多线程。通常更好地利用系统资源 否。即使任务挂起,也应保持互斥锁 互斥锁用于防止多个线程同时访问一段代码。

我想问一个关于多线程的问题。例如,我锁定了一个互斥锁并恢复了任务,然后我想挂起它,我的问题是,我应该在挂起它之前解锁互斥锁吗?所以当我用互斥锁再次恢复时,它会成功恢复吗

我刚开始学习多线程的东西,我很难理解其中的概念


非常感谢。

通常,只要需要对正在同步的对象进行“互斥”控制,您就需要保持互斥。我要说的是,不断地抓住它,释放它是有问题的。也许能更全面地解释你在做什么?我的方法是异步执行,而不是多线程。通常更好地利用系统资源

否。即使任务挂起,也应保持互斥锁

互斥锁用于防止多个线程同时访问一段代码。如果在挂起时释放互斥体,这将允许另一个线程访问互斥体要阻止的代码部分


如果您觉得不需要保持互斥锁,则表示您需要在获取和释放互斥锁时重新设计(基于您试图保护的内容)。这应该独立于线程的恢复/挂起。

我认为在任何人给出非常有意义的答案之前,您必须告诉我们更多关于您正在做的事情。例如,为什么要挂起线程?异步是什么意思?多线程是一种非同步实现吗?