一种图形化编程多线程同步方法与流程

文档序号:13004314阅读:920来源:国知局

本发明一般涉及图形化编程领域,具体涉及图形化编程多线程同步方法。



背景技术:

随着社会的发展,人们生活水平的不断提高,同时计算机技术的飞速发展,软硬件编程已不再是it人员的专职工作,编程者可能来自于社会上各行各业。但事实上,程序的世界仍然是大部分用户难以理解的,编程的高难度成为了人们探索计算机世界的绊脚石。非计算机专业的编程用户,是程序设计领域的特殊群体,随着使用计算机的次数增多和不断深入,他们将越来越感到现有的软硬件平台不能满足他们的需求,他们希望编程工具使用简单、功能强大;而专业的编程人员更期望使用直观易用、可读性强的编程语言。不同于文本型编程语言,图形化编程语言是一种能够将底层实现进行封装,用户仅需要简单拖拽编程组件,就能完成相应具有复杂逻辑的编程任务的编程语言。对于绝大多数非计算机专业的用户来说,简单直观的图形化编程语言能够给他们带来极大的便利。

现有的图形化编程软件并不常见,而且大都形式固定,由于设计难度高或软件缺陷,不支持图形化编程多线程同步,给使用者带来了诸多不便。



技术实现要素:

本发明针对当前图形化编程领域技术的不足,提供了一种图形化编程多线程同步方法。本发明的目的在于提供一种高效实用的图形化编程多线程同步方法,能够对分支开的图形化编程多线程进行同步,从而实现更复杂的图形化程序,具体技术方案如下。

一种图形化编程多线程同步方法,其包括以下步骤:

(a)对每个由图形化编程组件组成的连通分量进行深度优先搜索,逐个编程组件进行处理,并通过分别不同标记未访问和已访问节点,以确保由图形化编程组件组成的连通分量的有向无环;

(b)当处理的编程组件是一个分支节点时,添加新的图形化编程线程;

(c)当处理的编程组件是一个分支合并点(即线程同步点)时,进行图形化编程线程的同步;

上述一种图形化编程多线程同步方法中,步骤(b)包括以下步骤:

(b-1)访问当前处理的编程组件,分析语法结构,并翻译为底层编程语言。其中编程组件具有确定的功能,对应底层编程语言;

(b-2)对节点的每个分支,均加入新的线程启动标志;

(b-3)将新启动的图形化编程线程,均加入线程分配表;

(b-4)在当前线程结尾,加入线程结束标志

(b-5)将当前线程移出线程分配表。

上述一种图形化编程多线程同步方法中,步骤(b-2)中,所述线程启动标志用于启动新图形化编程线程;步骤(b-4)中,所述线程结束标志用于结束当前图形化编程线程。

上述一种图形化编程多线程同步方法中,步骤(b-3)中,所述线程分配表用于记录当前图形化编程线程的分配情况。

上述一种图形化编程多线程同步方法中,步骤(c)包括以下步骤:

(c-1)启动同步后新线程,并加入线程分配表;

(c-2)添加线程等待标志;

(c-3)分析当前处理的编程组件的语法结构,并翻译为底层编程语言。

上述一种图形化编程多线程同步方法中,步骤(c-1)中,所述同步后新线程是图形化线程同步后的新线程,由合并点的第一个父亲编程组件节点负责启动,即在合并点的第一个父亲编程组件节点处理后加入线程启动标志。

上述一种图形化编程多线程同步方法中,步骤(c-2)中,所述线程等待标志,用于等待图形化编程线程的同步,即需等待所有当前同步的图形化编程线程都处理完毕后,才进行当前编程组件的处理。

与现有技术相比,本发明具有如下优点和技术效果:

在并行化技术日益进步的今天,使用如fortran或者c语言等传统编程语言已经难以胜任,高级编程语言能更好的支持多线程编程,但是作为高级编程语言的图形化编程语言,在多线程编程上仍然显得乏力,不支持线程间同步。本发明在进行多线程处理时,对单个图形化编程组件连通分量进行深度优先搜索,逐个编程组件进行处理。当该编程组件是一个分支节点时,加入新的分支线程启动标志,并结束当前线程;当该编程组件是一个分支合并点(即线程同步点)时,合并点的第一个父亲编程组件节点负责启动线程,并添加线程等待标志,等待图形化编程线程的同步。实现了图形化编程的多线程同步,使图形化多线程编程具有更丰富的功能,提高编程人员的工作效率。

附图说明

图1为实施方式中图形化编程多线程同步方法的流程图。

具体实施方式

以下结合附图对本发明的实施方式作进一步说明,但本发明的实施不限于此。

如图1,一种图形化编程多线程同步方法的主要流程包括以下步骤:

(a)对每个由图形化编程组件组成的连通分量进行深度优先搜索,逐个编程组件进行处理,并通过标记未访问和已访问节点,以确保由图形化编程组件组成的连通分量的有向无环;

(b)当处理的编程组件是一个分支节点时,添加新的图形化编程线程;

(c)当处理的编程组件是一个分支合并点(即线程同步点)时,进行图形化编程线程的同步。

步骤(a)是通过对单个由图形化编程组件组成的连通分量进行深度优先搜索,遍历到该连通分量中的每个顶点,首先编译程序通过分别不同标记未访问和已访问节点,如果在试图访问一个之前未被访问过的节点时,发现该节点已被访问过,代表该连通分量存在环则不允许通过编译,以此确保由图形化编程组件组成的连通分量的有向无环,然后逐一进行编译与线程分配。

步骤(b)在处理每个编程组件节点时,如果遇到当前编程组件是一个分支节点时,对于每一个分支都会生成一条新线程。

步骤(b)包括以下步骤:

(b-1)访问当前处理的编程组件,分析语法结构,并翻译为底层编程语言。其中编程组件具有确定的功能,对应底层编程语言;

(b-2)对节点的每个分支,均加入新的线程启动标志;

(b-3)将新启动的图形化编程线程,均加入线程分配表;

(b-4)在当前线程结尾,加入线程结束标志;

(b-5)将当前线程移出线程分配表。

其中步骤(b-2)所述线程启动标志用于启动新图形化编程线程;步骤(b-4)所述线程结束标志用于结束当前图形化编程线程。

步骤(b-3)所述线程分配表用于记录当前图形化编程线程的分配情况,方便线程的全局访问。

步骤(c)是多线程同步的关键步骤,在处理每个编程组件节点时,如果遇到当前编程组件是一个分支合并点(即线程同步点)时,需等待所有当前同步的图形化编程线程都处理完毕后,才继续进行处理。

步骤(c)包括以下步骤:

(c-1)启动同步后新线程,并加入线程分配表;

(c-2)添加线程等待标志;

(c-3)分析当前处理的编程组件的语法结构,并翻译为底层编程语言。

步骤(c-1)所述同步后新线程是图形化线程同步后的新线程,由合并点的第一个父亲编程组件节点负责启动,即在合并点的第一个父亲编程组件节点处理后加入线程启动标志。

步骤(c-2)所述线程等待标志,用于等待图形化编程线程的同步,即需等待所有当前同步的图形化编程线程都处理完毕后,才进行当前编程组件的处理。

本发明在进行多线程处理时,对单个图形化编程组件连通分量进行深度优先搜索,逐个编程组件进行处理。当该编程组件是一个分支节点时,加入新的分支线程启动标志,并结束当前线程;当该编程组件是一个分支合并点(即线程同步点)时,合并点的第一个父亲编程组件节点负责启动线程,并添加线程等待标志,等待图形化编程线程的同步。实现了图形化编程的多线程同步,使图形化多线程编程具有更丰富的功能,提高编程人员的工作效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1