时间管理

uc/os3多任务与实时日历 uc/os3多任务与实时日历一、STM32F103C8T6移植uCOS二、简单多任务实现三、RTC实时时钟四、逻辑分析仪使用 一、STM32F103C8T6移植uCOS 1.uCOS下载 STM32F107uCOS样例下载 下载完成后文件如下: 2.文件导入 1)项目创建 使用STM32CUBEMX创建空项目 2)项目管理 1、在新建项目中新建文件夹UCOSIII 2、将官网样例文件中的uC-CPU、uC-LIB、uCOS-III移动到新建的文件夹UCOSIII中,并新建文件夹uCOS-BSP、uCOS- 阅读详情

第5章        时间管理

       在3.10节时钟节拍中曾提到,µC/OS-Ⅱ(其它内核也一样)要求用户提供定时中断来实现延时与超时控制等功能。这个定时中断叫做时钟节拍,它应该每秒发生10至100次。时钟节拍的实际频率是由用户的应用程序决定的。时钟节拍的频率越高,系统的负荷就越重。

       3.10节讨论了时钟的中断服务子程序和节时钟节函数OSTimeTick——该函数用于通知µC/OS-Ⅱ发生了时钟节拍中断。本章主要讲述五个与时钟节拍有关的系统服务:

l         OSTimeDly()

l         OSTimeDlyHMSM()

l         OSTimeDlyResume()

l         OSTimeGet()

l         OSTimeSet()

本章所提到的函数可以在OS_TIME.C文件中找到。

5.0     任务延时函数,OSTimeDly()

µC/OS-Ⅱ提供了这样一个系统服务:申请该服务的任务可以延时一段时间,这段时间的长短是用时钟节拍的数目来确定的。实现这个系统服务的函数叫做OSTimeDly()。调用该函数会使µC/OS-Ⅱ进行一次任务调度,并且执行下一个优先级最高的就绪态任务。任务调用OSTimeDly()后,一旦规定的时间期满或者有其它的任务通过调用OSTimeDlyResume()取消了延时,它就会马上进入就绪状态。注意,只有当该任务在所有就绪任务中具有最高的优先级时,它才会立即运行。

程序清单 L5.1所示的是任务延时函数OSTimeDly()的代码。用户的应用程序是通过提供延时的时钟节拍数——一个1 到65535之间的数,来调用该函数的。如果用户指定0值[L5.1(1)],则表明用户不想延时任务,函数会立即返回到调用者。非0值会使得任务延时函数OSTimeDly()将当前任务从就绪表中移除[L5.1(2)]。接着,这个延时节拍数会被保存在当前任务的OS_TCB中[L5.1(3)],并且通过OSTimeTick()每隔一个时钟节拍就减少一个延时节拍数。最后,既然任务已经不再处于就绪状态,任务调度程序会执行下一个优先级最高的就绪任务。

 

程序清单 L 5.1     OSTimeDly().

void OSTimeDly (INT16U ticks)

{

    if (ticks > 0) {                                                         (1)

        OS_ENTER_CRITICAL();

        if ((OSRdyTbl[OSTCBCur->OSTCBY] &= ~OSTCBCur->OSTCBBitX) == 0) {     (2)

            OSRdyGrp &= ~OSTCBCur->OSTCBBitY;

        }

        OSTCBCur->OSTCBDly = ticks;                                        (3)

        OS_EXIT_CRITICAL();

        OSSched();                                                            (4)

    }

}

 

    清楚地认识0到一个节拍之间的延时过程是非常重要的。换句话说,如果用户只想延时一个时钟节拍,而实际上是在0到一个节拍之间结束延时。即使用户的处理器的负荷不是很重,这种情况依然是存在的。图F5.1详细说明了整个过程。系统每隔10ms发生一次时钟节拍中断[F5.1(1)]。假如用户没有执行其它的中断并且此时的中断是开着的,时钟节拍中断服务就会发生[F5.1(2)]。也许用户有好几个高优先级的任务(HPT)在等待延时期满,它们会接着执行[F5.1(3)]。接下来,图5.1中所示的低优先级任务(LPT)会得到执行的机会,该任务在执行完后马上调用[F5.1(4)]所示的OSTimeDly(1)。µC/OS-Ⅱ会使该任务处于休眠状态直至下一个节拍的到来。当下一个节拍到来后,时钟节拍中断服务子程序会执行[F5.1(5)],但是这一次由于没有高优先级的任务被执行,µC/OS-Ⅱ会立即执行申请延时一个时钟节拍的任务[F5.1(6)]。正如用户所看到的,该任务实际的延时少于一个节拍!在负荷很重的系统中,任务甚至有可能会在时钟中断即将发生时调用OSTimeDly(1),在这种情况下,任务几乎就没有得到任何延时,因为任务马上又被重新调度了。如果用户的应用程序至少得延时一个节拍,必须要调用OSTimeDly(2),指定延时两个节拍!

Figure 5.1    Delay resolution.


 

5.1     按时分秒延时函数 OSTimeDlyHMSM()

OSTimeDly()虽然是一个非常有用的函数,但用户的应用程序需要知道延时时间对应的时钟节拍的数目。用户可以使用定义全局常数OS_TICKS_PER_SEC(参看OS_CFG.H)的方法将时间转换成时钟段,但这种方法有时显得比较愚笨。笔者增加了OSTimeDlyHMSM()函数后,用户就可以按小时(H)、分(M)、秒(S)和毫秒(m)来定义时间了,这样会显得更自然些。与OSTimeDly()一样,调用OSTimeDlyHMSM()函数也会使µC/OS-Ⅱ进行一次任务调度,并且执行下一个优先级最高的就绪态任务。任务调用OSTimeDlyHMSM()后,一旦规定的时间期满或者有其它的任务通过调用OSTimeDlyResume()取消了延时(参看5.02,恢复延时的任务OSTimeDlyResume()),它就会马上处于就绪态。同样,只有当该任务在所有就绪态任务中具有最高的优先级时,它才会立即运行。

    程序清单 L5.2所示的是OSTimeDlyHMSM()的代码。从中可以看出,应用程序是通过用小时、分、秒和毫秒指定延时来调用该函数的。在实际应用中,用户应避免使任务延时过长的时间,因为从任务中获得一些反馈行为(如减少计数器,清除LED等等)经常是很不错的事。但是,如果用户确实需要延时长时间的话,µC/OS-Ⅱ可以将任务延时长达256个小时(接近11天)。

    OSTimeDlyHMSM()一开始先要检验用户是否为参数定义了有效的值[L5.2(1)]。与OSTimeDly()一样,即使用户没有定义延时,OSTimeDlyHMSM()也是存在的[L5.2(9)]。因为µC/OS-Ⅱ只知道节拍,所以节拍总数是从指定的时间中计算出来的[L5.2(3)]。很明显,程序清单 L5.2中的程序并不是十分有效的。笔者只是用这种方法告诉大家一个公式,这样用户就可以知道怎样计算总的节拍数了。真正有意义的只是OS_TICKS_PER_SEC。[L5.2(3)]决定了最接近需要延迟的时间的时钟节拍总数。500/OS_TICKS_PER_SECOND的值基本上与0.5个节拍对应的毫秒数相同。例如,若将时钟频率(OS_TICKS_PER_SEC)设置成100Hz(10ms),4ms的延时不会产生任何延时!而5ms的延时就等于延时10ms。

    µC/OS-Ⅱ支持的延时最长为65,535个节拍。要想支持更长时间的延时,如L5.2(2)所示,OSTimeDlyHMSM()确定了用户想延时多少次超过65,535个节拍的数目[L5.2(4)]和剩下的节拍数[L5.2(5)]。例如,若OS_TICKS_PER_SEC的值为100,用户想延时15分钟,则OSTimeDlyHMSM()会延时15x60x100=90,000个时钟。这个延时会被分割成两次32,768个节拍的延时(因为用户只能延时65,535个节拍而不是65536个节拍)和一次24,464个节拍的延时。在这种情况下,OSTimeDlyHMSM()首先考虑剩下的节拍,然后是超过65,535的节拍数[L5.2(7)和(8)](即两个32,768个节拍延时)。

 

程序清单 L 5.2     OSTimeDlyHMSM().

INT8U OSTimeDlyHMSM (INT8U hours, INT8U minutes, INT8U seconds, INT16U milli)

{

    INT32U ticks;

    INT16U loops;

 

 

    if (hours > 0 || minutes > 0 || seconds > 0 || milli > 0) {          (1)

        if (minutes > 59) {

            return (OS_TIME_INVALID_MINUTES);

        }

        if (seconds > 59) {

            return (OS_TIME_INVALID_SECONDS);

        }

        If (milli > 999) {

            return (OS_TIME_INVALID_MILLI);

        }

        ticks = (INT32U)hours    * 3600L * OS_TICKS_PER_SEC                 (2)

              + (INT32U)minutes  *   60L * OS_TICKS_PER_SEC

              + (INT32U)seconds  *         OS_TICKS_PER_SEC

              + OS_TICKS_PER_SEC * ((INT32U)milli

              + 500L /OS_TICKS_PER_SEC) / 1000L ;                          (3)

        loops = ticks / 65536L ;                                              (4)

        ticks = ticks % 65536L ;                                               (5)

        OSTimeDly(ticks);                                                      (6)

        while (loops > 0) {                                                    (7)

            OSTimeDly(32768);                                                  (8)

            OSTimeDly(32768);

            loops--;

        }

        return (OS_NO_ERR);

    } else {

        return (OS_TIME_ZERO_DLY);                                            (9)

    }

}

 

    由于OSTimeDlyHMSM()的具体实现方法,用户不能结束延时调用OSTimeDlyHMSM()要求延时超过65535个节拍的任务。换句话说,如果时钟节拍的频率是100Hz,用户不能让调用OSTimeDlyHMSM(0,10,55,350)或更长延迟时间的任务结束延时。

5.2     让处在延时期的任务结束延时,OSTimeDlyResume()

    µC/OS-Ⅱ允许用户结束延时正处于延时期的任务。延时的任务可以不等待延时期满,而是通过其它任务取消延时来使自己处于就绪态。这可以通过调用OSTimeDlyResume()和指定要恢复的任务的优先级来完成。实际上,OSTimeDlyResume()也可以唤醒正在等待事件(参看第六章——任务间的通讯和同步)的任务,虽然这一点并没有提到过。在这种情况下,等待事件发生的任务会考虑是否终止等待事件。

    OSTimeDlyResume()的代码如程序清单 L5.3所示,它首先要确保指定的任务优先级有效 [L5.3(1)]。接着,OSTimeDlyResume()要确认要结束延时的任务是确实存在的[L5.3(2)]。如果任务存在,OSTimeDlyResume()会检验任务是否在等待延时期满[L5.3(3)]。只要OS_TCB域中的OSTCBDly包含非0值就表明任务正在等待延时期满,因为任务调用了OSTimeDly(),OSTimeDlyHMSM()或其它在第六章中所描述的PEND函数。然后延时就可以通过强制命令OSTCBDly为0来取消[L5.3(4)]。延时的任务有可能已被挂起了,这样的话,任务只有在没有被挂起的情况下才能处于就绪状态[L5.3(5)]。当上面的条件都满足后,任务就会被放在就绪表中[L5.3(6)]。这时,OSTimeDlyResume()会调用任务调度程序来看被恢复的任务是否拥有比当前任务更高的优先级[L5.3(7)]。这会导致任务的切换。

 

 

程序清单 L 5.3     恢复正在延时的任务

INT8U OSTimeDlyResume (INT8U prio)

{

    OS_TCB *ptcb;

 

    if (prio >= OS_LOWEST_PRIO) {                                            (1)

        return (OS_PRIO_INVALID);

    }

    OS_ENTER_CRITICAL();

    ptcb = (OS_TCB *)OSTCBPrioTbl[prio];                                  

    if (ptcb != (OS_TCB *)0) {                                               (2)

        if (ptcb->OSTCBDly != 0) {                                           (3)

            ptcb->OSTCBDly  = 0;                                              (4)

            if (!(ptcb->OSTCBStat & OS_STAT_SUSPEND)) {                    (5)

                OSRdyGrp               |= ptcb->OSTCBBitY;                   (6)

                OSRdyTbl[ptcb->OSTCBY] |= ptcb->OSTCBBitX;

                OS_EXIT_CRITICAL();

                OSSched();                                                      (7)

            } else {

                OS_EXIT_CRITICAL();

            }

            return (OS_NO_ERR);

        } else {

            OS_EXIT_CRITICAL();

            return (OS_TIME_NOT_DLY);

        }

    } else {

        OS_EXIT_CRITICAL();

        return (OS_TASK_NOT_EXIST);

    }

}

 

    注意,用户的任务有可能是通过暂时等待信号量、邮箱或消息队列来延时自己的(参看第六章)。可以简单地通过控制信号量、邮箱或消息队列来恢复这样的任务。这种情况存在的唯一问题是它要求用户分配事件控制块(参看6.00),因此用户的应用程序会多占用一些RAM。

5.3     系统时间,OSTimeGet()和OSTimeSet()

    无论时钟节拍何时发生,µC/OS-Ⅱ都会将一个32位的计数器加1。这个计数器在用户调用OSStart()初始化多任务和4,294,967,295个节拍执行完一遍的时候从0开始计数。在时钟节拍的频率等于100Hz的时候,这个32位的计数器每隔497天就重新开始计数。用户可以通过调用OSTimeGet()来获得该计数器的当前值。也可以通过调用OSTimeSet()来改变该计数器的值。OSTimeGet()和OSTimeSet()两个函数的代码如程序清单 L5.4所示。注意,在访问OSTime的时候中断是关掉的。这是因为在大多数8位处理器上增加和拷贝一个32位的数都需要数条指令,这些指令一般都需要一次执行完毕,而不能被中断等因素打断。

 

程序清单 L 5.4     得到和改变系统时间

INT32U OSTimeGet (void)

{

    INT32U ticks;

 

    OS_ENTER_CRITICAL();

    ticks = OSTime;

    OS_EXIT_CRITICAL();

    return (ticks);

}

 

void OSTimeSet (INT32U ticks)

{

    OS_ENTER_CRITICAL();

    OSTime = ticks;

    OS_EXIT_CRITICAL();

}

 

 
程序员的时间管理计划 目录 01优秀程序员的时间概念 02优秀程序员的时间分类 03时间管理法则 最近大家都在忙着做什么呢?忙着找工作?忙着工作?抑或是忙着当一条咸鱼,但是每天都给自己贴上一条正在忙着思考人生的标签? 不管何种状态,你都在悄无声息地消耗着这个世界上最奢侈的东西——时间。而估量这种消耗的产出价值最佳途径就——这段时间你究竟收获了什么? 如果3秒之内你脑海中已经有一连串的答案呼之欲出,那么恭... 阅读详情

相关推荐

UCOSII实时操作系统启动原理和理解

1,ucos系统的任务表示: 需要在里面添加中断的代码的,以便于它能跳转到其他的任务中执行,切换任务的时候,判断优先级进行任务之间的切换的工作。 void task1(void * param) 当调用 OSStart()时,OSStart()从任务就绪表中找出那个用户建立的优先级最高任务的任务控制块。Start()调用高优先级就绪任务启动函数 OSStartHighRdy()[(2)],这个文件与选择的微处理器有关。函数 OSStartHighRdy()是将任务栈中保存的值弹回到CPU 寄存器中,然后执行

wangjie36的博客 2457

UC/OS-II-5.0

第5章     时间管理.... 1< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" /> 5.0         任务延时函数,OSTimeDly() 1 5.1         按时分秒延时函数 OSTimeDlyHMSM() 3 5.2         让处在延时期的任务结...

SmallBox00的博客 375

Borland Turbo Assembler - TASM 全集 1.0-5.0

Borland Turbo系列第二集 Turbo Assembler 1.0 Turbo Assembler 2.0 Turbo Assembler 3.0 Turbo Assembler 4.0 Turbo Assembler 5.0

从零开始学习UCOSII操作系统3--UCOSII启动过程

从零开始学习UCOSII操作系统3--UCOSII启动过程 1、初始化UCOSII (1)在调用UCOSII在任何的其他的服务之前,UCOSII要求首先调用初始化函数OSInit();这个函数的目的就是在整个系统启动之前,初始化所有的变量和数据结构。 (2)其中,在OSInit()函数中建立空闲任务OS_TaskIdle(); 这个任务总是处于就绪态的,空闲任务的优先级是设置为最低

李辉的博客 9010

DOS模拟器,内含EDIT、TASM、TLINK、TD

使用DOSBOX在WIN764的环境下模拟汇编环境,内含EDIT、TASM、TLINK、TD

TASM5.0汇编软件包.rarTASM5.0汇编软件包.rar

TASM5.0汇编软件包.rarTASM5.0汇编软件包.rar

高效时间管理法则

你是否天天在忙,是否忙的不得要领,认真领会时间管理的四象限工作法,它会让你的工作变得高效。

别说话写代码的博客 2898

深入解析PCIe Retimer:工作原理与典型应用场景

本文深入解析了PCIe Retimer的工作原理与核心价值。作为高速信号的中继再生器,Retimer通过时钟数据恢复和信号再生技术,有效解决长距离或复杂通道中的信号衰减与完整性问题,从而极大地扩展了PCIe链路的有效传输距离。文章详细阐述了其内部架构、自动与手动两种工作模式,并重点介绍了在长距离板间互连、复杂背板设计等典型应用场景中的关键作用。

weixin_29195615的博客 507

高效时间管理

高效时间管理

wangguanghou1的博客 1167

window部署open claw(使用wsl-Ubuntu-docker部署)

本文详细介绍了在Windows 11系统下通过WSL2+Docker部署OpenClaw的完整流程。首先需要满足硬件配置要求并开启虚拟化功能,然后依次完成WSL2安装配置、Docker Desktop安装、OpenClaw镜像拉取等步骤。重点说明了端口映射、socat转发配置及openclaw.json文件修改方法。最后通过验证WSL2内网IP和端口访问服务。该方案具有最佳兼容性,能有效避免Windows环境下的依赖冲突问题。

Kmoyic的博客 2763

3D Slicer隐藏技巧:这样玩转医学影像分割与3D建模(含DICOM处理)

本文深入探讨3D Slicer在医学影像分割与3D建模中的高级应用技巧,包括多模态分割策略、三维可视化优化及DICOM数据处理。通过专业配置和Python脚本示例,帮助医疗AI开发者和影像科医师提升工作效率,实现精准的医学图像分析与建模。

weixin_28559803的博客 433

做个时间管理的高手

我的《时间管理》培训通常是用李宗盛的《忙与盲》这首歌来欢迎每一位入场的学员的:  曾有一次晚餐和一张床,在什么时间地点和哪个对象,我已经遗忘,我已经遗忘生活是肥皂香水,眼影唇膏。  许多的电话在响,许多的事要备忘。许多的门与抽屉,开了又关,关了又开,如此的慌张。  我来来往往,我匆匆忙忙,从一个方向到另一个方向。  忙忙忙,忙忙忙,忙是为了自己的理想,还是为了不让别人失望?  

r1sunzh的专栏 2626

10行代码搞定QMT实盘交易:手把手教你用Python自动化买卖股票(附完整源代码)

本文提供了一份详尽的QMT实盘交易教程,手把手教你使用Python构建自动化交易系统。内容涵盖环境配置、账户连接、查询与下单等核心代码,并附有完整的源代码示例,帮助开发者快速掌握从零到实盘的完整流程,实现安全可靠的股票自动化买卖。

weixin_29214335的博客 440

四代时间管理理论

四代时间管理理论   在时间管理领域里,每一代理论都是在前一代的基础上发展起来的,而每一次发展都能让我们更好的掌握生活。 第一代:普遍使用便条和办事清单,明确生活中的各种需要。没有提到有限顺序的概念。第二代:使用日历或日程表来安排约会的进度计划,反映需要提交计划的时间并预先安排未来的活动。使用这个管理的人有一定的自我控制能力,但没有按照重要性对任务进行排序,缺少成就感,因为时间总是被日程表...

You may be out of my sight, but never out of my mind. 2288

CH-x01&ICU-x0201-问答专题

CH201在近距离30cm和远距离1.8m左右测距误差是最大的,误差可能>3 cm。在中间部分测距误差是<2cm的,因为考虑到安装测试治具也存在误差,所以整个范围设置在±3cm。

nicole088的专栏 379

Virtuoso 中的tech file 详细说明

工艺文件(Techfile)是集成电路设计中的核心配置文件,定义了从晶圆制造到版图验证全流程所需的工艺规则和图层属性。在Cadence Virtuoso平台中,Techfile作为连接设计与制造的桥梁,主要包含以下内容: 图层体系定义 金属层、介质层、多晶硅层等物理图层的编号、名称和显示属性 图层用途(DRAW、MASK等)及图层-用途组合(LPP)的优先级 设计规则约束 几何尺寸规则(最小线宽/间距) 包围和延伸规则 密度规则和特殊工艺规则(如天线效应) 器件定义 MOS管、电阻等器件的图层构成 电学参数

u013620135的博客 8131

[管理者与领导者-130]:时间管理 - 什么是时间管理,工程师为什么需要管理自己的时间?时间管理与分时操作系统的关系

时间管理是指通过事先规划和运用一定的技巧、方法与工具(缺一不可)实现对时间的灵活以及有效运用,从而高效地实现个人或组织的既定目标的过程。EMBA、MBA等主流商业管理教育均将时间管理能力作为一项对企业管理者的基本要求涵括在内。

文火冰糖(王文兵)的博客 1770

【即插即用模块】注意力篇 | TGRS 2025 | MFA聚特征+HPDown保细节+HFF融层级,三大模块各司其职,性能翻倍!

本文介绍了MTMLNet网络中的三大核心模块:MFA(多阶段特征聚合)、HPDown(混合池化下采样)和HFF(分层特征融合)。MFA通过双尺度深度卷积和注意力机制增强特征提取能力;HPDown结合平均池化和最大池化,有效保留下采样过程中的特征信息;HFF采用三注意力机制实现自适应特征融合。这三个模块协同工作,在红外小目标检测与分割任务中取得了SOTA效果。实验表明,各模块在特征提取、信息保留和融合方面均优于传统方法,可灵活应用于各类视觉任务中。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 286

让时间管理成为你的习惯

老师曾在在课堂上引用了彼得 杜拉克的一句话:管理时间你就能管理一切!来说明时间管理的重要性!既然时间管理如此的重要,我们该如何有效的管理我们的时间呢,让它成为我们生活当中的一个习惯呢?      我不知道大家做的情况如何,但是我参照以下的作法,逐渐地时间管理成为了我生活当中的一个习惯!      第一,时间价值分析法                      如果,我们都明确了自己的价值,

小火子 1717

Apache Kylin 命令注入漏洞复现(CVE-2020-1956)

Apache Kylin 中的静态 API 存在安全漏洞,可以将os命令与用户输入字符串连接起来,攻击者可以在Kylin没有任何保护或验证的情况下执行任何os命令。

0xSec 1558

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

模型 时间管理矩阵

时间管理矩阵也称为时间“四象限”法,它是美国的管理学家科维提出的一个时间管理的理论,把工作按照重要和紧急两个不同的程度进行了划分,基本上可以分为四个“象限”:既紧急又重要(如客户投诉、即将到期的任务、财务危机等)重要但不紧急(如建立人际关系、人员培训、制订防范措施等)紧急但不重要(如电话铃声、不速之客、部门会议等)既不紧急也不重要(如上网、闲谈、邮件、写博客等)按处理顺序划分:先是既紧急又重要的,接着是重要但不紧急的,再到紧急但不重要的,最后才是既不紧急也不重要的。

wangdsh的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

如何进行时间管理

时间管理是我们每个人都应该学会的一件事。工作和生活里,难免会有很多的事情,我们又如何规划和管理自己的时间呢?以我自己的经验来看,有如下几点,分享给大家: 1、严格自律:不睡懒觉,不拖拉,形成相对固定的工作和生活模式,这样可以提前规划自己的工作和学习时间,而不至于慌乱。 2、零碎时间:我们每个人每天的零碎时间非常的多,早起的珍贵时光,上下班的路上,中午休息的时间,晚上下班后及睡觉前等等。我每天早...

方子的博客 1739

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

职场中的时间管理

目录 1.时间管理现状 2.时间管理常见的陷阱和现状 3.如何规避这些陷阱 3.1明确目标 3.2分清缓急 3.3 立即行动 4.其他规避这些陷阱的技巧 5.常用时间管理软件 今天这篇文章主要讲讲时间管理相关的内容。 首先明确一下: 时间管理并非管理的是“时间”本身,而是本我或者是事件; 做好时间管理的前提是自控力和意愿; 时间管理是“自我管理”中的非常重要的组成部分...

陈所长 1172

python时间管理

时间管理 (我愿称之为罗氏时间管理大法,全体起立!) 在计算机科学中我认为有两大领域比较高深,多线程和标杆管理,并且关于后者,Python中提供的精确工具并没有什么帮助。 现如今的算法把重点放在了时间管理的实现上,它解决了内置时间管理没有的两个警告: 测量每秒的调用次数,而非每次调用的耗时。 时间复杂度的经验估量。 我们要意识到一个事实就是,一个好的基准应该是在方法论而非数量级上...

小白菜的博客 1180
上一篇: 内核结构
下一篇: 任务之间的通讯与同步
menuconfig
博客等级 码龄19年 713粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值