MySQL数据库一表中存储了任务列表,有一个执行任务的线程从表中按优先级顺序取出并执行,执行完成后从表中移除记录。任务列表是第三方插入的,现在有这么个需求:调整优先级。
现优先级字段是插入时候默认为系统当前时间毫秒数:System.currentTimeMillis()(用String存储,字段array),对于调整优先级现仅能想到以下:
1.调整任务B到A任务前即将A的array数值减1,当又将任务C调整到A前也将A的array值数值减1,此时发现减1后的值已经存在,则在数值减1后的array字段后字符加1,当任务D又要调整到A前,如此如此……如果对于优先级调整频繁的话,array字段长度终究是要溢出的(现设定array最大长度为99)。
2.update数据库相应array字段值,如果将任务X挑中到M前,则将M到W的任务的array值都相应的赋予下个任务的值(M.array=N.array,N.array=O.array…),如果数据库中任务列表量大而优先级调整又频繁的话就会导致数据库操作过于频繁。
3.使用单向链表,在数据库中添加一字段,用于存储当前任务的前一个任务。这样对于调整优先级倒是方便了,改两行的值即可,但是对于从表中取值就要查询很多次了(查询第一个之后,根据“指针”查询到第二个……)。
求一解决方案,谢谢了!
http://www.iteye.com/problems/78079
分享到:
相关推荐
OptimusAsyncTask 将每个任务抽象成 OptimusTask,OptimusTask 可以设置任务执行时间,任务优先级,获取任务状态等。 同时 OptimusAsyncTask 提供了 OptimusTask 的默认实现类 BaseOptimusTask,它实现了 Comparable...
本项目旨在演示如何利用Spring和Quartz从数据库中动态加载定时任务,并实现对它们的增删改查功能。以下是关于这个主题的详细知识讲解。 首先,Quartz是一个开源的作业调度框架,它允许开发者创建、安排和执行定时...
本实验"V5-403_RTX实验_任务优先级修改"着重于理解并实践如何在FreeRTOS环境中调整任务(Task)的优先级,以优化系统的执行效率。FreeRTOS是一个轻量级、开源的RTOS,广泛应用于各种嵌入式设备,特别是对实时性能有...
在VC++环境中,线程的优先级管理是优化程序性能、控制任务执行顺序的重要手段。本篇文章将深入探讨VC++中的线程优先级以及如何通过示例程序“赛马”来直观展示其工作原理。 首先,我们需要理解线程优先级的概念。在...
在多任务环境中,线程优先级可以帮助决定哪个线程应该先被执行,从而影响程序的响应速度和整体性能。本篇文章将深入探讨线程优先级的概念、其在不同操作系统中的实现,以及如何在VC2008环境下进行设置。 首先,线程...
线程优先级则是操作系统调度线程的一种策略,用于决定哪些线程应该先获得CPU执行权。在Windows系统中,VC++作为一款强大的C++集成开发环境,提供了线程管理的功能,包括设置线程优先级。本篇文章将深入探讨线程...
### 一种任务优先级的综合设计方法 #### 摘要与背景介绍 本文提出了一种基于优先级表设计的调度算法,旨在提高实时系统的任务调度效率。在实时系统中,任务调度的目标是确保所有任务都能在其指定的时间限制内完成...
而线程优先级则是多线程环境中控制任务调度的一个重要概念,它决定了哪些线程应该先获得CPU的执行时间片。本示例将深入探讨多线程优先级及其对程序执行的影响。 标题中的“多线程优先级的示例演示”是一个实践教程...
线程调度是多任务操作系统中的一个关键概念,它决定了如何在多个并发运行的线程之间分配CPU的时间片。线程调度的优先级是决定哪些线程应该先获得执行权的重要因素,尤其对于Java这样的多线程编程环境。下面将详细...
在IT行业中,线程优先级是一个关键的概念,特别是在多任务并行处理的环境中。线程是操作系统中的基本执行单元,每个程序至少包含一个线程,更复杂的程序可能包含多个线程,它们各自独立地执行任务。线程优先级的设置...
线程优先级是多线程编程中的一个重要概念,特别是在Windows操作系统中,VC++(Visual C++)作为微软的开发环境,提供了对线程管理的丰富支持。赛马演示是一种直观的方式来展示不同线程优先级如何影响程序执行顺序,...
在IT领域,尤其是在软件开发中,定时任务是一个非常常见的需求,它允许程序按照预定的时间间隔执行特定的操作。本文将深入探讨如何使用C#语言来实现一个自定义的定时任务系统,支持多任务运行,以便更好地满足开发中...
在Android中,我们可以使用Java的ExecutorService或者Android的AsyncTask来实现线程池,但这些库可能无法满足特定的需求,比如设置任务优先级。 AppExecutor就是一种自定义线程池的实现,它允许我们为不同的任务...
// 任务优先级 void *taskStack; // 任务栈指针 void (*taskEntry)(void*); // 任务入口函数 // 其他状态信息... } TCB_t; ``` 然后,你可以为每个任务创建一个TCB实例,并将它们链接在一起形成一个链表。链表...
在任务执行期合理、科学地确定维修任务的优先级别...所建立的神经网络模型通过对输入与输出的训练,可以学习准则与维修任务优先级之间的复杂关系,获得并表示决策者的偏好,有效地辅助决策者对维修任务优先级进行分类。
在计算机编程中,多线程是一种并发执行任务的技术,它允许多个线程在同一时间运行,从而提高了程序的效率和响应速度。特别是在多核处理器系统中,多线程能够充分利用硬件资源,使得程序能并行处理不同的任务。本文将...
在IT领域,线程池是一种优化资源管理的策略,它预先创建一组线程,并将它们组织起来执行一系列的任务。Boost库是C++编程语言中的一个流行开源库,提供了丰富的功能,其中包括线程池(Boost.Threadpool)模块。本文将...
优先级反转是指在多任务实时系统中,一个高优先级的任务(任务A)因为等待一个低优先级任务(任务C)释放资源而无法执行,这时如果来了一个中等优先级的任务(任务B),任务B就会抢占CPU执行,因为它的优先级高于...