人员、任务、进度、工时、周期、依赖关系 一目了然。无论项目大小、简单复杂都能轻松管理
话说前几天我遇到了一个死锁问题,当时想了一些办法糊弄过去了,不过并没有搞明白问题的细节,周末想起来便继续研究了一下,最终便有了这篇文章。
让我们搞一段简单的代码来重现一下当时我遇到的问题:
package main
import sync
func main() {
var wg sync.WaitGroup
foo := make(chan int)
bar := make(chan int)
closing := make(chan struct{})
w
话说前几天我遇到了一个死锁问题,当时想了一些办法糊弄过去了,不过并没有搞明白问题的细节,周末想起来便继续研究了一下,最终便有了这篇文章。
让我们搞一段简单的代码来重现一下当时我遇到的问题:
package main
import sync
func main() {
var wg sync.WaitGroup
foo := make(chan int)
bar := make(chan int)
closing := make(chan struct{})
w