本发明涉及计算机,尤其涉及一种基于双向链表的多线程协同执行方法。
背景技术:
1、在并发编程中,锁是一种常用的同步机制,用于确保多个线程在访问共享资源时的数据一致性和完整性。
2、传统锁结构(如互斥锁、读写锁)在解决并发问题时,需要通过程序自身控制来实现线程的解锁,并通过自由竞争的方式获取锁资源。然而,这种机制在满足多线程按照指定顺序和条件执行的场景时存在明显的局限性,无法满足多线程按照指定顺序和条件执行的场景。
技术实现思路
1、有鉴于此,有必要提供一种基于双向链表的多线程协同执行方法,用以实现多线程按照指定顺序和条件执行的目的。
2、为了实现上述目的,本发明提供一种基于双向链表的多线程协同执行方法,包括:
3、基于业务场景需求构建数据结构;所述数据结构为双向链表;
4、当所述数据结构中的第一节点对应的节点状态为成功,且第二节点对应的执行条件满足时,执行所述第二节点对应的线程,并将第三节点的节点状态切换为监听;所述第二节点为所述第一节点的下级节点;所述第三节点为所述第二节点的下级节点;
5、当所述数据结构中所有节点的节点状态都为成功时,停止执行所述数据结构中的线程。
6、在一种可能的实现方式中,所述基于业务场景需求构建数据结构,包括:
7、基于业务场景需求中每个线程的执行条件和执行顺序,构建所述数据结构;
8、所述数据结构包括多个节点,每个节点分别对应不同的线程、上级节点、下级节点和执行条件。
9、在一种可能的实现方式中,所述数据结构中的初始节点为执行条件为空的节点。
10、在一种可能的实现方式中,还包括:
11、当所述第一节点对应的节点状态为失败时,将所述第一节点的所有下级节点的节点状态都切换为取消。
12、在一种可能的实现方式中,还包括:
13、当所述第一节点对应的节点状态为成功,且第二节点对应的执行条件不满足时,将所述第二节点的节点状态切换为取消,并将所述第二节点的所有下级节点的节点状态都切换为取消。
14、在一种可能的实现方式中,所述基于业务场景需求构建数据结构之后,还包括:
15、将所有节点的节点状态都标记为初始化;
16、当所有节点对应的线程调用锁资源进入休眠状态后,将所有节点的节点状态都切换为准备。
17、本发明还提供一种基于双向链表的多线程协同执行装置,包括:
18、构建模块,用于基于业务场景需求构建数据结构;所述数据结构为双向链表;
19、执行模块,用于当所述数据结构中的第一节点对应的节点状态为成功,且第二节点对应的执行条件满足时,执行所述第二节点对应的线程,并将第三节点的节点状态切换为监听;所述第二节点为所述第一节点的下级节点;所述第三节点为所述第二节点的下级节点;
20、停止模块,用于当所述数据结构中所有节点的节点状态都为成功时,停止执行所述数据结构中的线程。
21、另一方面,本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任意实现方式中所述的基于双向链表的多线程协同执行方法。
22、本发明的有益效果是:本发明提供的基于双向链表的多线程协同执行方法,可以根据业务场景需求构建双向链表数据结构,当数据结构中的第一节点对应的节点状态为成功,且第二节点对应的执行条件满足时,则执行第二节点对应的线程,并将第三节点的节点状态切换为监听,当数据结构中所有节点的节点状态都为成功时停止执行数据结构中的线程,通过组合双向链表和节点状态,可以确保任务按照特定的顺序和条件执行,避免了多线程执行中的混乱和冲突,通过提供预设解锁条件的锁结构,可以实现精准的线程并发控制,触发之后,所有线程会根据指定条件和顺序自动触发,简化了线程并发控制场景的复杂程度和编码难度,可用于需要多线程协同工作的场景中,通过设定解锁条件来实现多线程按照指定顺序串行或并行执行。
1.一种基于双向链表的多线程协同执行方法,其特征在于,包括:
2.根据权利要求1所述的基于双向链表的多线程协同执行方法,其特征在于,所述基于业务场景需求构建数据结构,包括:
3.根据权利要求2所述的基于双向链表的多线程协同执行方法,其特征在于,所述数据结构中的初始节点为执行条件为空的节点。
4.根据权利要求1所述的基于双向链表的多线程协同执行方法,其特征在于,还包括:
5.根据权利要求1所述的基于双向链表的多线程协同执行方法,其特征在于,还包括:
6.根据权利要求1所述的基于双向链表的多线程协同执行方法,其特征在于,所述基于业务场景需求构建数据结构之后,还包括:
7.一种基于双向链表的多线程协同执行装置,其特征在于,包括:
8.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任意一项所述的基于双向链表的多线程协同执行方法。