【linux内核】workqueue_struct工作队列
配置笔记本电脑安装centos7关闭盖子不休眠
struct workqueue_struct *my_wq;
my_wq = alloc_workqueue("my_wq", WQ_UNBOUND | WQ_MEM_RECLAIM, 1);
INIT_WORK(&my_work, my_work_func);
queue_work(my_wq, &my_work);
- 调用 alloc_workqueue():仅创建队列对象;
- 调用 queue_work():发现没有 worker,创建一个;
- 线程启动,执行 my_work_func();
- 执行完后线程保持空闲,等待下一个任务。
在/etc/systemd/logind.conf文件中添加一行配置:
HandleLidSwitch=ignore