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

可以自己做网站优化吗网站建设与网页设计入门

可以自己做网站优化吗,网站建设与网页设计入门,小程序直播系统开发,手机制作游戏软件目录 一、linux 创建内核线程1.1 kthread_create1.2 kthread_create_worker kthread_queue_work 二、设置线程优先级和调度策略2.1 sched_setscheduler2.2 调度策略 一、linux 创建内核线程 1.1 kthread_create 在 linux 中#xff0c;可以使用 kthread_create 接口创建内核… 目录 一、linux 创建内核线程1.1 kthread_create1.2 kthread_create_worker kthread_queue_work 二、设置线程优先级和调度策略2.1 sched_setscheduler2.2 调度策略 一、linux 创建内核线程 1.1 kthread_create 在 linux 中可以使用 kthread_create 接口创建内核线程该接口原型如下 struct task_struct *kthread_create(int (*threadfn)(void *data), void *data, const char namefmt[], ...);入参含义 - threadfn线程函数的入口点。 - data传递给线程函数的参数。 - namefmt线程的名字可以用格式化字符串指定。示例代码 #include linux/kthread.h #include linux/delay.h// 线程函数 int thread_function(void *data) {while (!kthread_should_stop()) {// 线程的主要工作pr_info(Thread is running\n);ssleep(5); // 休眠5秒}return 0; }// 在合适的地方创建线程 struct task_struct *task; task kthread_create(thread_function, NULL, my_thread); if (!IS_ERR(task)) {wake_up_process(task); // 启动线程 }1.2 kthread_create_worker kthread_queue_work kthread_create_worker 主要用于创建一个用于管理工作队列的工作线程。 函数原型 struct kthread_worker *kthread_create_worker(unsigned int flags, const char namefmt[], ...);入参含义 - flags创建worker时的标志。 - namefmtworker的名称。kthread_queue_work 用于将一个工作项添加到由kthread_worker 管理的工作队列中。 函数原型 void kthread_queue_work(struct kthread_worker *worker, struct kthread_work *work);入参含义 -worker目标worker。 -work要执行的工作。示例代码 #include linux/kthread.h #include linux/delay.h #include linux/slab.hstatic struct kthread_worker *worker; static struct kthread_work work;void work_function(struct kthread_work *work) {pr_info(Work function is running\n); }int __init my_module_init(void) {worker kthread_create_worker(0, my_worker);if (IS_ERR(worker)) {pr_err(Failed to create kthread worker\n);return PTR_ERR(worker);}// 初始化工作kthread_init_work(work, work_function);// 将工作排队kthread_queue_work(worker, work);return 0; }void __exit my_module_exit(void) {kthread_destroy_worker(worker); }module_init(my_module_init); module_exit(my_module_exit);上述示例代码中 kthread_create_worker创建一个工作队列kthread_worker kthread_queue_work 将一个工作项 kthread_work 添加到工作队列 kthread_worker;每调用一次 kthread_queue_work(worker, work);工作项 kthread_work 对应的执行函数 work_function 就会得到一次调用。 二、设置线程优先级和调度策略 2.1 sched_setscheduler sched_setscheduler 接口是 linux 内核中设置特定线程或进程优先级和调度策略的接口。函数原型 int sched_setscheduler(struct task_struct *p, int policy, const struct sched_param *param);入参说明 - p指向目标任务线程或进程的 task_struct 结构体的指针。 - policy调度策略。 - param指向 sched_param 结构体的指针包含了调度参数如优先级。kthread_create_worker sched_setscheduler 创建线程并设置调度策略和优先级 static int __init my_module_init(void) {struct sched_param param;int ret;// 创建内核线程工作队列my_worker kthread_create_worker(0, my_worker);// 获取内核线程的task_structmy_worker_thread my_worker-task;// 设置调度策略和优先级param.sched_priority MAX_RT_PRIO - 1; // 设置为最高实时优先级ret sched_setscheduler(my_worker_thread, SCHED_FIFO, param);return 0; }kthread_create sched_setscheduler 创建线程并设置调度策略和优先级 // 线程函数 static int thread_function(void *data) {while (!kthread_should_stop()) {}return 0; }static int __init my_module_init(void) {struct sched_param param;int ret;// 创建内核线程my_thread kthread_create(thread_function, NULL, my_thread);// 设置调度策略和优先级param.sched_priority MAX_RT_PRIO - 1; // 设置为最高实时优先级ret sched_setscheduler(my_thread, SCHED_FIFO, param);// 启动内核线程wake_up_process(my_thread);return 0; }2.2 调度策略 SCHED_NORMAL普通调度策略也称为 SCHED_OTHER。Linux 默认的普通任务调度策略基于时间片轮转调度算法适用于大多数用户进程和内核线程。 SCHED_FIFO先进先出调度策略。使用该策略时系统优先调用高优先级的任务想通优先级的任务按照先到先服务的顺序执行只有在队列中所有优先级最高的任务都执行完或者放弃 CPU 后才会执行其他任务。优先级使用 sched_param 结构中的 sched_priority 成员设置值越小优先级越高0 最高。 SCHED_RR循环调度策略。优先高优先级任务相同优先级先进先出每个任务时间片轮转类似于 SCHED_FIFO但每个任务有一个时间片如果任务在该时间片内没有运行完毕会将任务移到队列末尾等待下一轮调度。也可以通过 sched_param 结构的 sched_priority 设置优先级。 SCHED_BATCH用于低优先级任务的批处理。用于大量计算密集型任务通常在系统负载较低时调度器会执行 SCHED_BATCH 线程。 SCHED_IDLE专为低优先级的后台任务设计。只有在没有其他更重要的任务需要执行时才会考虑执行 SCHED_IDLE 线程。 SCHED_DEADLINE允许任务在预定的截止时间内完成执行以满足实时系统对任务响应时间的严格要求。deadline 调度策略为每个任务分配固定的 CPU 时间片Budget并指定每个周期内允许执行的最大时间量Period。 参考 SCHED_FIFO与SCHED_OTHER调度机制 【Linux 内核】进程管理 - 进程优先级 ② ( prio 调度优先级 | static_prio 静态优先级 | normal_prio 正常优先级 | rt_priority 实时优先级 )
http://www.dnsts.com.cn/news/204170.html

相关文章:

  • 呼市賽罕区信息网站做一顿饭工作外贸网站建站m
  • 网站开发中常见的注册界面网站数字化建设
  • 如何分析网站流量上海网站开发薪资
  • 专门做2k名单的网站廊坊网站建设方案
  • 怎么实现网站注册页面wordpress排除分类
  • 知名做网站的公司南京h5网站开发
  • 乡镇医院网站建设网站运营是什么意思
  • o2o网站设计方案网站如何做二级栏目
  • 做淘宝美工和网站设计那个好哪些动物可以做网站名
  • 极速网站推广专家a4网站建设
  • 张家港高端网站建设公司兴平网站建设
  • zero的大型网站seo教程重庆建筑工程职业学院
  • 永兴县网站建设推广公司定制鱼缸一般多少钱
  • 建站平台绑定域名企业咨询公司收费标准
  • 哈尔滨座做网站的如何做一份网站推广方案
  • 水墨风格网站设计页面纸张大小
  • 安全的南昌网站制作的wordpress博客模板
  • 驻马店建设网站杭州最大网络公司排名
  • 江门网页建站模板在哪找做调查赚钱的网站好
  • 网站建设 不违背深圳坪山区最新通告
  • 浙江人工智能建站系统软件苏宁易购网站建设分析
  • 青岛知名网站建设企业整合营销
  • 网站建设插导航条黑龙江省住房和城乡建设厅官网
  • 域名抢注网站建设深圳光明
  • 一个虚拟主机多个网站小程序用什么开发
  • 做iframe跳转怎么自适应网站网页规划书怎么写
  • dedecms 把自己的网站添加进去网络营销推广方案步骤
  • 陕西响应式网站建设公司微网站怎么做的好处
  • 快速优化网站建设有没有做电子名片的网站
  • 网站页面框架设计影响用户广告设计与制作就业方向是什么