ps aux 时看到的event线程(如果有多个cpu可能就有多event0~x)就是内核的大work_list, 通常是用schedule_work()之类的函数就是把job hang到这个list上面去。
而cancel_delayed_work实际是用来取消挂到执行队列上的job, 一般在调用这个函数后都会继续调用flush_delayed_work这个是用来等到正在执行的队列执行完。实际上后者是为了解决cancel时的死锁问题。
ps aux 时看到的event线程(如果有多个cpu可能就有多event0~x)就是内核的大work_list, 通常是用schedule_work()之类的函数就是把job hang到这个list上面去。
而cancel_delayed_work实际是用来取消挂到执行队列上的job, 一般在调用这个函数后都会继续调用flush_delayed_work这个是用来等到正在执行的队列执行完。实际上后者是为了解决cancel时的死锁问题。