当前位置: 首页 > news >正文

linux work工作队列

linux work工作队列

1.工作队列的介绍

工作队列常用来在特定的时间间隔或者其他情况来执行一些动作,每个工作队列都有一个或者多个的线程(通常来说都是一个线程),在每个

线程中执行相应的任务。

2.工作队列的使用

1.work的相关函数的介绍以及用法

//头文件
#include <linux/workqueue.h>//work中分为不延迟执行和延迟执行,意思是调用执行work的函数时,执行当前工作的队列是否需要延迟执行typedef void (*work_func_t)(struct work_struct *work);
struct work_struct {atomic_long_t data;struct list_head entry;work_func_t func;
#ifdef CONFIG_LOCKDEPstruct lockdep_map lockdep_map;
#endif
};
//初始化work
#define INIT_WORK(_work, _func)						\__INIT_WORK((_work), (_func), 0)
//执行work,实际上调用的是queue_work,把当前的work加入到system的wq当中执行
schedule_work(struct work_struct *work);//初始化delay_work
#define INIT_DELAYED_WORK(_work, _func)					\__INIT_DELAYED_WORK(_work, _func, 0)
//对应的结构体delayed_work相比work_struct 多出了一个定时器
struct delayed_work {struct work_struct work;struct timer_list timer;/* target workqueue and CPU ->timer uses to queue ->work */struct workqueue_struct *wq;int cpu;
};
//执行work
schedule_delayed_work(struct delayed_work *dwork,unsigned long delay)
//取消work
cancel_delayed_work(struct delayed_work *dwork)
//取消work 直到完成
cancel_delayed_work_sync(struct delayed_work *dwork)

2.队列中work的使用

work example:
struct delayed_work {struct work_struct *work;work_func_t led_fun;
}    
void led_blink(struct work_struct *work)
{;    
}
struct led_work * led_work;
led_work->led_fun = led_blink;
INIT_DELAYED_WORK(led_work->work, led_work->led_fun);schedule_delayed_work(led_work->work, H/100);
//cancel work
cancel_delayed_work(led_work->work);workqueue example:struct delayed_work {struct work_struct *work;work_func_t led_fun;struct workqueue_struct *wq;
}    void led_blink(struct work_struct *work)
{;    
}
struct led_work * led_work;
led_work->led_fun = led_blink;
led_work->wq = create_singlethread_workqueue("queue");
INIT_DELAYED_WORK(led_work->work, led_work->led_fun);queue_work(led_work->wq, led_work->work);
//cancel workqueue
destroy_workqueue(led_work->wq);

3.工作队列的创建

//通常创建工作队列有两种方法,其中的区别是针对多个核的cpu,create_singlethread_workqueue只会在单个cpu上创建workqueue而create_workqueue是在多个核上同时创建,schedule_work是吧当前的work加入到systemwq工作队列中,而queue_work可以指定队列把当前的work加入到队列中
//用户自行创建的工作队列的优点是不需要看工作的时间 影响内核systemwq的调度
create_singlethread_workqueue(name);
create_workqueue(name)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35515.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

TCP“三次挥断”的原因TCP延迟确认机制

在学习wireshark抓包的时候&#xff0c;一般都从最简单的三次握手和四次挥断看起&#xff0c;因为这两步对于每一个完整健康的TCP交互流来说都是必不可少的&#xff0c;通过抓包我们可以更清楚的了解其工作机制。 一、四次挥断和“三次挥断” 1、第一种情况 比如在电脑cmd发…...

PyQt5环境Pycharm+anaconda配置

文章目录在pycharm中新建项目安装所需包配置Qt designer和pyUIC首先下载好pycharm和anaconda在pycharm中新建项目 新建项目选择anaconda环境 检查所需包&#xff1a;pyqt5&#xff0c;pyqt5-tools&#xff0c;sip等&#xff0c;注意选择anaconda包管理器 可以在anaconda navi…...

golang中slice的扩容机制

文章目录简介结论关于 len & cap关于 cap 扩容简介 slice 是 golang 中的数组切片&#xff0c;可以理解成是一种动态数组&#xff0c;一般通过 make 声明时候&#xff0c;会指定其 len 和 cap。一般我们常常使用 append 函数时候当 len 超过 cap 时候就会进行扩容处理 结…...

Spring框架的入门知识点

一、概念 1.一款轻量级的JAVAEE解决方案&#xff0c;众多优秀设计模式的组合&#xff1b; 2.作用&#xff08;目的&#xff09;&#xff1a;解耦合&#xff0c;目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。 3. Spring 的核心思想是&#xff1a; IOC:控制…...

实现批量自动部署Linux操作系统--UP楠哥

#实战描述&#xff1a; UPWEN公司所服务的用户IT环境中有很多的Linux系统&#xff0c;品种也五花八门&#xff0c;有RHEL、Centos、OpenSUSE甚至还有测试环境使用的RockyLinux。当有大量的计算机需要同时安装操作系统需求的时候&#xff0c;如果通过光驱的方式一个个安装&#…...

HDU 1536 S-Nim

1536 #include<bits/stdc.h> using namespace std; int s[110],sg[10010]; int k; int SG(int x){if(sg[x]!-1)return sg[x];bool vis[110];memset(vis,0,sizeof(vis));for(int i0;i<k;i){if(x>s[i]){SG(x-s[i]);vis[sg[x-s[i]]]1;}}for(int i0;;i){if(!vis[i]){...

Redis 内存淘汰机制

Redis 内存淘汰机制 【问题一】 过期字典的方法很好&#xff0c;但还是有可能会出问题。因为定期删除和惰性删除还是有可能造成大量过期的 key 没被删除&#xff0c;堆积在内存中。非常容易就 内存溢出了 Out of memory。 【问题二】 如何保证 Redis 中的数据都是热点数据 &am…...

2021年Java开发爆款推荐!docker部署tomcat

一.java基础面试知识点 java中和equals和hashCode的区别 int、char、long各占多少字节数 int与integer的区别 探探对java多态的理解 String、StringBuffer、StringBuilder区别 什么是内部类&#xff1f;内部类的作用 抽象类和接口区别 抽象类的意义 抽象类与接口的应用…...

常见各类算法

冒泡&#xff1a; 1、依次比较相邻的元素&#xff0c;如果第一个比第二个大&#xff0c;则交换位置&#xff1b; 2、从第一个交换到最后一个时&#xff0c;最后的元素一定是最大的&#xff1b; 3、然后对所有的元素都执行此操作O(n^2)快排&#xff1a; 1、选择一个基准&#…...

错题小笔记13——序列化、serialVisionUID的作用

序列化&#xff1a;将数据结构转换称为二进制数据流或者文本流的过程。序列化后的数据方便在网络上传输和在硬盘上存储。 反序列化&#xff1a;是将二进制数据流或者文本流转换称为易于处理和阅读的数据结构的过程。本质其实还是一种协议&#xff0c;一种数据格式&#xff0c;…...

HTTP与HTTPS的区别

HTTP与HTTPS的区别 HTTP &#xff08;HyperText Transfer Protocol&#xff1a;超文本传输协议&#xff09; HTTP&#xff08;HyperText Transfer Protocol&#xff1a;超文本传输协议&#xff09;是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发…...

贝叶斯分类器

贝叶斯理论 连续、离散特征处理 朴素贝叶斯分类器 半朴素贝叶斯分类器 贝叶斯理论 在我们学习概率论课程中&#xff0c;基本上处处暗含着贝叶斯理论的身影。贝叶斯理论简单说可以是一种概率转化的方法&#xff0c;将一种较难求得的相关概率转化为几个较容易求得的概率乘积…...

阿里P8大牛亲自讲解!java静态变量和实例变量

Redis主从复制 概念 Redis的主从复制概念和MySQL的主从复制大概类似。一台主机master&#xff0c;一台从机slaver。master主机数据更新后根据配置和策略&#xff0c;自动同步到slaver从机&#xff0c;Master以写为主&#xff0c;Slave以读为主。 主要用途 读写分离&#xff1…...

5. 断路器hystrix dashboard turbine

hystrix使用 feign中使用 hystrix feign:hystrix:enabled: true #必须配置Component public class EurekaClientHystrix implements EurekaClientFeign{}使用feign配置了&#xff0c;这些&#xff0c;即可进行回退 Feign 的起步依赖中已经包含Hystrix依赖&#xff0c;所以只…...

使用朴素贝叶斯过滤垃圾邮件

示例&#xff1a;使用朴素贝叶斯对电子邮件进行分类(1) 收集数据&#xff1a;提供文本文件。(2) 准备数据&#xff1a;将文本文件解析成词条向量。 (3) 分析数据&#xff1a;检查词条确保解析的正确性。(4) 训练算法&#xff1a;使用我们之前建立的trainNB0()函数。(5) 测试算法…...

Angular中NgOnInit和Constructor方法之间的主要区别

参考链接&#xff1a;https://chudovo.com/main-differences-between-ngoninit-and-constructor-methods-in-angular/...

redis中的RDB和AOF

redis提供两种方式进行持久化&#xff0c;一种是RDB持久化&#xff08;原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化&#xff09;&#xff0c;另外一种是AOF持久化&#xff08;原理是将Reids的操作日志以追加的方式写入文件&#xff09;。那么这两种持久化方…...

阿里云泄露信息、腾讯视频崩了,抖音使用IPFS存储!IPFS将开启一个更安全的互联网存储时代!

西部世界XLMidsummer了解到&#xff0c;近日&#xff0c;网络流传一份浙江省通信管理局7月5日对投诉人的答复函&#xff0c;核实称此前阿里云计算有限公司未经用户同意擅自将用户留存在的注册信息泄露给第三方合作公司。8月23日&#xff0c;浙江省通信管理局相关负责人独家回应…...

djanog导出csv文件

def xlsx_response(x_io):res HttpResponse()res["Content-Type"] "text/csv"res["Content-Disposition"] filename"aa.xlsx"res.write(x_io.getvalue())return resif query_params.get(export):values_list_order queryset.valu...

post与get请求的区别以及转发和重定向的区别

post 与get请求的额区别 比较角度GETPOST请求的数据是否在url上显示会 url?参数名参数值&#xff08;不安全&#xff09;不会 在Form Data中&#xff08;安全&#xff09;是否是表单的默认提交方式是不是执行效率高低&#xff08;相对于GET&#xff09;提交数据大小最大是102…...

[DebugJournal]bat批处理文件遇到的问题及解决方法

问题1&#xff1a;在运行bat文件时&#xff0c;for循环内部的变量无法用echo打印&#xff0c;总是显示回显状态或者将echo后面的内容当作字符输出。 代码及双击bat运行结果如下&#xff1a; 注意&#xff1a;命令行和bat的循环变量写法有差异&#xff0c;命令行循环变量为%i&a…...

vue import错误Module build failed: Error: No PostCSS Config found in解决办法

问题描述&#xff1a; 我是在VUE框架是用import ‘ant-design-vue/dist/antd.css’;引入ant-design-vue的css遇到的&#xff0c;试过很多方法都解决不了&#xff0c;最后解决办法是&#xff1a; 把ant-design-vue直接在vue项目的根目录安装解决问题。...

3D点云系列(一)点云介绍

点云数据简介 点云数据&#xff08;point cloud data&#xff09;是指在一个三维坐标系统中的一组向量的集合。扫描资料以点的形式记录&#xff0c;每一个点包含有三维坐标&#xff0c;有些可能含有颜色信息&#xff08;RGB&#xff09;或反射强度信息&#xff08;Intensity&a…...

初学java可能会遇到的问题

每个单词的大小写不能出现问题&#xff0c; java对大小写十分敏感&#xff1b; 尽量使用英文单词&#xff1b; 文件名和包含main方法的类名必须保持一致&#xff0c;并且首字母大写&#xff1b; 语法的标点符号必须使用英文的。...

【LeetCode刷题日记01】Two Sum

一、题目 Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not use the same element twice. You can return th…...

数据结构 study 5: typedef 结构体 数组 作为形参

代码 /* c1.h (程序名) */ #include<string.h> #include<ctype.h> #include<malloc.h> /* malloc()等 */ #include<limits.h> /* INT_MAX等 */ #include<stdio.h> /* EOF(^Z或F6),NULL */ #include<stdlib.h> /* atoi() */ #include <…...

毕设系列之 -- 教程:单片机接入按键控制遥感

文章目录1 简介2 主要器件2.1 双轴摇杆模块2.2 电路原理图3 实现效果4 测试代码6 最后1 简介 Hi&#xff0c;大家好&#xff0c;这里是丹成学长&#xff0c;今天向大家介绍如何使用单片机接入按键遥感 单片机接入按键控制遥感 大家可用于 课程设计 或 毕业设计 技术解答 毕…...

golang中slice的扩容机制

文章目录简介结论关于 len & cap关于 cap 扩容简介 slice 是 golang 中的数组切片&#xff0c;可以理解成是一种动态数组&#xff0c;一般通过 make 声明时候&#xff0c;会指定其 len 和 cap。一般我们常常使用 append 函数时候当 len 超过 cap 时候就会进行扩容处理 结…...

Unable to find instance for XXXX

当你的控制台报了这样的错误 这就是请求的后端服务没启动&#xff0c;联系后端启动后端就行。...

如何html css完成分层金字塔

近期才通过自学了html和css&#xff0c;今日恰好做一个金字塔实例&#xff0c;能够清晰的看得出标志数据信息&#xff0c;必须 的朋友们下边伴随着小编来一起学习学习吧 文中关键详细介绍了html css完成分层次金字塔的实例&#xff0c;共享给大伙儿&#xff0c;实际以下&#…...

dbc2000 注册机|dbc2000 注册码注册机下载

点击下载来源&#xff1a;dbc2000 注册机 dbc2000 注册机是同名源程序软件的注册机软件&#xff0c;该源程序软件是一款应用于数据库搭建以及数据写入的数据库架设工具&#xff0c;它拥有强大的数据写入功能&#xff0c;在作为应用程序使用时&#xff0c;它不仅可以充当数据属性…...

秋招面经第八弹:网易二面-数据开发工程师

秋招第八弹&#xff1a;网易二面-数据开发工程师 写在最前&#xff1a;秋招以来一直在冲&#xff0c;因为事情比较多&#xff0c;对于笔试面试一直没有复盘&#xff0c;现在靠仅存的记忆把面试的一些问题记录下来&#xff0c;尽可能记录出能回忆到的问题&#xff0c;但可能记的…...

安卓课程格子APP

https://download.csdn.net/download/weixin_57836618/73810452 功能演示&#xff1a; 查看所有课程 点击主页面空白处即可添加课程 添加课程之后查看课程 查看双周课程 查看单周课程 6.查看课程详情...

强化学习——格子世界

强化学习——格子世界 项目源码地址&#xff1a;https://gitee.com/infiniteStars/machine-learning-experiment 1. 实验内容 2. 实验代码 import numpy as np import matplotlib.pyplot as plt from matplotlib.table import Table from xml.dom.minidom import Document #手…...

华为机试 - 跳格子游戏

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 地上共有N个格子&#xff0c;你需要跳完地上所有的格子&#xff0c;但是格子间是有强依赖关系的&#xff0c;跳完前一个格子后&#xff0c;后续的格子才会被开启&#xff0c;格子间的依赖关系由多组st…...

php 爬课程表信息,Ruby爬取教务系统生成课程表

我为什么要虐自己最近觉得课程格子广告越来越多&#xff0c;乱七八糟的东西越来越多&#xff0c;完全失去了一开始的存在价值&#xff0c;并且没有电脑端app&#xff0c;想查看课程必须拿出手机&#xff0c;而我使用电脑频率要比手机高&#xff0c;所以才有了折腾的动力。于是我…...

android 课程表 ui,UICollectionViewLayout实现课程表布局

因为项目中有课程表的相关模块&#xff0c;第一时间想到用UICollectionView。然而后期的需求越来越复杂&#xff0c;每个格子需要展示的内容越来越多&#xff0c;所以不得不寻找合适的解决方案。最后发现自定义UICollectionViewLayout可以实现我的需求。先放效果图&#xff1a;…...

Android自定义View课程表,Android 自定义View课程表表格

自己闲下来时间写的一个课表控件使用的自定义LinearLayout 里面View都是用代码实现的 最终效果如下图 写的可能有问题希望多多指点创建一个自定义LinearLayout 控件用来装载课程的信息和课程的周数 和节数大概的布局三这样的根据上面的看来觉得总体布局我分了两个 上面的星期是…...

java课程设计设计_java课程设计

1. 团队课程设计博客链接https://www.cnblogs.com/choco1ate/p/12172223.html2.本组课题及本人任务本组课题&#xff1a;泡泡堂(炸弹人)游戏本人任务&#xff1a;Box类(游戏地图中的每个方格)Bomb类(游戏过程中的)游戏玩家输赢信息的文件储存3.需求分析Box类&#xff1a;该类为…...

《课程格子》的一个笔试题目

题目如下&#xff0c;感觉很适合喜欢琢磨的程序员&#xff0c;也是考验你编码风格的时候。 Lets make a tower defense game&#xff08;塔防游戏):1. You have 1 tower, with H health and D dps(damage per second).2. There are n attackers, each with h_i health and d_i …...

Android仿照超级课程表 or 课程格子 一键提取课表功能(方正系统)

参考文章http://blog.csdn.net/sbsujjbcy ,本文仿照‘ 安卓弟 提供的android 项目实战——打造超级课程表一键提取课表功能文章&#xff0c;对他的代码进行了修改和补充&#xff0c;为什么要修改呢&#xff1f;原因是安卓弟的那个源码版本过于老旧&#xff0c;很多方法已经过…...

三款按键可视化软件——在你的电脑屏幕上显示按键

需要录制软件教程的时候&#xff0c;为了更好的教学效果&#xff0c;我们希望在屏幕上显示我们的按键 这里推荐两款可视化软件 ​KeyCastOW&#xff1a; window平台下的开源软件。 carnac&#xff1a; 同样是window平台下的软件&#xff0c;但是这个软件不支持crtl、alt、shif…...

influxdb可视化工具

下载可视化工具链接: https://pan.baidu.com/s/1MCyqFrpjJzSmD_oRuYSGhA 提取码: mcmp 注&#xff1a;没有设置用户名密码。亲测该软件用户名密码不能为空。可以随意填写&#xff0c;只要不为空即可。因为我是测试环境。 涉及数据的东西加上密码安全。 基本操作命令 #进入操作…...

晶体结构可视化软件Vesta简介

Vesta是一个免费开源&#xff0c;晶体结构可视化软件&#xff0c;可以辅助第一性原理计算使用&#xff0c;网址见http://www.jp-minerals.org/soft/en/ Vesta有很多复杂的功能&#xff0c;比如帮助建立固体元胞模型&#xff0c;以及数据可视化 Vesta可以直接读取Vasp的POSCAR…...

MySQL之可视化软件

MySQL可视化客户端 多款可视化界面&#xff0c;总有一款适合你 个人推荐使用MySQL官方提供的可视化工具. 下载链接 使用方法链接 转载于:https://www.cnblogs.com/plf-Jack/p/11201713.html...

串口可视化软件

用普通得串口看到的数据难以知道数据是怎么样的 但是最近发现了一个可以直观看数据的串口软件&#xff0c;网站如下 http://www.mcumonitor.com/sy 上面的数据就可以这样表示 其上位机与单片机的通讯方式&#xff1a;printf("$,%d,%f...",a,f...);例如&#xff1a;p…...

Linux下数据库可视化软件推荐

在Windows中&#xff0c;常用的可能就是Navacat&#xff0c;但是这玩意还收费&#xff0c;又的想办法破解&#xff0c;非常麻烦&#xff0c;但是总有一款软件能代替它。 DBeaver dbeaver是一款免费开源为开发人员和数据库管理员提供的通用数据库工具。不亚于Navacat。并且DBe…...

Ubuntu18.04安装可视化软件Pyviz

在Ubuntu 18.04下安装ns3前需要更新Pyviz可视化软件&#xff0c;若使用命令 sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev 安装&#xff0c;则会出现以下错误&#xff1a; E: Unable to locate package python-pygoocanvas E: …...

3D数字孪生大屏怎么做?你需要了解这款数据可视化软件

如果你希望找到一款数字孪生产品制作一个三维可视化大屏&#xff0c;那么推荐你了解一下这款软件——山海鲸可视化。 这是一款非常优秀的专业数字孪生软件&#xff0c;拥有多项自主技术研发专利&#xff0c;同时这款产品在画面表现力、数据接入能力、数据安全性方面都做得非常…...

想做数字孪生项目?这款数据可视化软件值得你了解

你是否希望找到一款质量优秀、价格实惠的数字孪生产品&#xff1f;山海鲸可视化就是这样一款软件&#xff0c;接下来本文将对该软件进行简单介绍。 1.国产自研3D引擎 众所周知&#xff0c;数字孪生涉及到3D渲染技术&#xff0c;目前许多数字孪生产品因为缺乏原创开发能力&…...