الصينية |

CGRAPH عبارة عن إطار عمل متقطع من المنصات ، وهو إطار عمل دوري يعتمد على C ++ النقي دون أي تبعيات من الطرف الثالث.
يمكنك ، معها ، بناء مشغليك ببساطة ، ووصف أي جداول قيد التشغيل كما تحتاج ، مثل التبعية ، التماثل ، التجميع وما إلى ذلك.
يتم عرض البرامج التعليمية ومعلومات الاتصال على النحو التالي.
يُطلق على CGraph [اللون ، الصورة] باللغة الصينية ، وهو إطار تنفيذ عملية الرسم البياني عبر المنصات دون أي تبعيات من طرف ثالث. من خلال GPipeline (خط الأنابيب) الجدولة الكامنة ، فإنه يوفر وظيفة التنفيذ المتسلسل للعناصر التابعة والتنفيذ المتزامن للعناصر غير المعتمدة في جدولة EDAG.
يحتاج المستخدمون فقط إلى ورث فئة GNode (العقدة) ، وتنفيذ طريقة run() للفئة الفرعية ، وتعيين التبعيات حسب الحاجة لتحقيق التنفيذ الرسومي أو تنفيذ خط الأنابيب للمهمة. من الممكن أيضًا تعيين العديد من GGroup (المجموعات) التي تحتوي على معلومات متعددة العقدة للتحكم في الحكم المشروط والحلقات والمنطق التنفيذ المتزامن للرسم البياني.
يوفر المشروع نوع Param (المعلمة) الغني لعلم التشغيل البيني للبيانات في سيناريوهات التطبيق المختلفة. بالإضافة إلى ذلك GEvent GAdapter توسيع وظائف العناصر المختلفة أعلاه عن طريق إضافة GAspect ؛

هذا المشروع مكتوب باستخدام مكتبة C ++ 11 Pure C ++ 11 وليس لها تبعيات من طرف ثالث. متوافق مع MacOS و Linux و Windows و Android ، فإنه يدعم التجميع المحلي والتطوير الثانوي من خلال CLion و VSCode و Xcode و Visual Studio و Code::Blocks و Qt Creator IDEs.
للحصول على مقدمة وظيفية مفصلة واستخدام ، يرجى الرجوع إلى محتوى المقالة في yimianzhiyuan.com. يتم تحديث مقاطع الفيديو ذات الصلة بشكل مستمر على B.com.
# include " CGraph.h "
class MyNode1 : public CGraph ::GNode {
public:
CStatus run () override {
printf ( " [%s], sleep for 1 second ... n " , this -> getName (). c_str ());
CGRAPH_SLEEP_SECOND ( 1 )
return CStatus ();
}
};
class MyNode2 : public CGraph ::GNode {
public:
CStatus run () override {
printf ( " [%s], sleep for 2 second ... n " , this -> getName (). c_str ());
CGRAPH_SLEEP_SECOND ( 2 )
return CStatus ();
}
};# include " MyNode.h "
using namespace CGraph ;
int main () {
/* 创建一个流水线,用于设定和执行流图信息 */
GPipelinePtr pipeline = GPipelineFactory::create ();
GElementPtr a, b, c, d = nullptr ;
/* 注册节点之间的依赖关系 */
pipeline-> registerGElement <MyNode1>(&a, {}, " nodeA " );
pipeline-> registerGElement <MyNode2>(&b, {a}, " nodeB " );
pipeline-> registerGElement <MyNode1>(&c, {a}, " nodeC " );
pipeline-> registerGElement <MyNode2>(&d, {b, c}, " nodeD " );
/* 执行流图框架 */
pipeline-> process ();
/* 清空流水线中所有的资源 */
GPipelineFactory::remove (pipeline);
return 0 ;
}
كما هو موضح في الشكل أعلاه ، عند تنفيذ بنية الرسم البياني ، يتم تنفيذ العقدة a لأول مرة. بعد تنفيذ العقدة a ، يتم تنفيذ العقدة b و c بالتوازي. بعد تنفيذ جميع العقد b و c ، يتم تنفيذ العقدة d
[2021.05.04 - V1.0.0 - Chunel]
[2021.05.09 - V1.1.0 - Chunel]
[2021.05.18 - V1.1.1 - Chunel]
name العقدة ومعلومات session[2021.05.23 - V1.2.0 - Chunel]
[2021.05.29 - V1.3.0 - Chunel]
cluster (الكتلة) region (المنطقة) ووظائف تنفيذ الحلقةtutorial ، بما في ذلك أمثلة الاستخدام المتعددة[2021.06.14 - V1.4.0 - Chunel]
param (المعلمة)group (المجموعة) ، وراثي الوحدات النمطية متعددة العقدة من وحدات group بشكل موحد[2021.06.20 - V1.4.1 - Chunel]
condition (حالة)[2021.06.24 - V1.5.0 - Chunel]
pipelinetutorial[2021.07.07 - V1.5.1 - Chunel]
[2021.07.11 - V1.5.2 - Chunel]
[2021.07.31 - V1.5.3 - Chunel]
[2021.08.29 - V1.6.0 - Chunel]
pipeline متعددة لتحسين المنطق الأساسيtutorial[2021.09.19 - V1.6.1 - Chunel]
Lru ومشغل Trie ووظائف عقدة القالب لتحسين المنطق الأساسيtutorial[2021.09.29 - V1.7.0 - Chunel]
aspect لتوسيع نطاق node الخارجية أو وظيفة grouptutorial[2021.10.07 - V1.7.1 - Chunel]
aspect التنفيذ (القسم) ، وتوفير وظيفة معلمة القسم ، ودُفعات إضافة وظيفة القسمtutorial[2021.11.01 - V1.8.0 - Chunel]
adapter ووظيفة محول singletonpipelinetutorial[2021.12.18 - V1.8.1 - Chunel]
CStatus[2022.01.02 - V1.8.2 - Chunel]
task group[2022.01.23 - V1.8.3 - Chunel]
function لتنفيذ وظائف البرمجة الوظيفيةtutorial[2022.01.31 - V1.8.4 - Chunel]
node (العقدة) التنفيذ غير المتزامن[2022.02.03 - V1.8.5 - Chunel]
daemon لتنفيذ المهام في الرسوم البيانية غير التدفق بانتظامtutorial[2022.04.03 - V1.8.6 - Chunel]
DistanceCalculator لتنفيذ الحسابات لأي نوع من البيانات وأي نوع مسافةtutorial[2022.04.05 - V2.0.0 - Chunel]
domain (المجال) ، وتوفير نموذج Ann Domain Abstract ، وابدأ في دعم الاتجاهات المهنية الفرديةtutorial[2022.05.01 - v2.0.1 - Chunel]
pipeline ودعم تنفيذ الطلب المخصص لطرق init[2022.05.29 - v2.1.0 - Chunel]
elementtutorial[2022.10.03 - v2.1.1 - Chunel]
group[2022.11.03 - v2.2.0 - Chunel]
message (رسالة) ، تستخدم بشكل أساسي لإكمال نقل البيانات بين pipeline المختلفةtutorial[2022.12.24 - V2.2.1 - Chunel]
TemplateNode لتحسين طريقة نقل المعلمةtutorial[2022.12.25 - V2.2.2 - Yeshenyong]
[2022.12.30 - V2.2.3 - Chunel]
message واشتراك[2023.01.21 - V2.3.0 - Chunel]
event (الحدث)CGraph Intro.xmind ، والذي يقدم المنطق العام لـ CGRAPH من خلال مخطط الدماغ.[2023.01.25 - v2.3.1 - Chunel]
[2023.02.10 - V2.3.2 - Chunel]
[2023.02.12 - V2.3.3 - Yeshenyong ، Chunel]
[2023.02.22 - v2.3.4 - Chunel]
param وآلية event (الحدث)[2023.03.25 - v2.4.0 - Woodx ، Chunel]
pipeline[2023.05.05 - v2.4.1 - Chunel]
pipeline أقصى طريقة لاكتساب التزامن. بفضل Hanano-Yuuki لتوفير الحلول ذات الصلةpipeline ووظيفة الخروج أثناء التنفيذ[2023.06.17 - V2.4.2 - Chunel]
MultiCondition (شرط متعدد) وظيفةpipeline واستئناف وظائف التنفيذ[2023.07.12 - V2.4.3 - Chunel]
CStatus وأضف معلومات تحديد موقع الاستثناء[2023.09.05 - v2.5.0 - Chunel]
pipelineelementsome الوظائف (الجزئية) لتحسين التنفيذ غير المتزامن pipeline[2023.09.15 - v2.5.1 - Chunel]
fencecoordinator (المنسق)[2023.11.06 - v2.5.2 - Chunel]
message (الرسالة) ، والتي يمكن أن تضبط طريقة المعالجة عند كتابة الحظر ، وتقليل عدد أوقات نسخ الذاكرةexample محتوى مرتبط لتوفير بعض التطبيقات البسيطة للصناعات المختلفة[2023.11.15 - v2.5.3 - Chunel]
protomutable لتوفير السكر بناء جملة تسجيل التبعية[2024.01.05 - v2.5.4 - Chunel]
test ، بما في ذلك حالات اختبار الأداء ووظائفهاevent (الحدث) ودعم وظيفة الانتظار غير المتزامن[2024.07.18 - V2.6.0 - Papapig -Melody ، Chunel]
pipelineelement[2024.09.17 - v2.6.1 - Chunel]
pipeline ويوفر آلية المهام الصغيرة تستند إلى تنفيذ ثابتpipeline لإزالة التبعيات المكررة بين elementelementevent (الحدث) ، يمكن أن تنتظر الأحداث غير المتزامنة[2024.11.16 - v2.6.2 - Chunel]
tutorialشكرًا لك على نشر مستندات المقدمة ذات الصلة على حساب WeChat الرسمي.
بفضل مقدمة المجلة والتوصية من Hellogithub: Hellogithub العدد 70


Taskflow Group : الحوسبة المتوازية الرائعة ، ونتعامل دائمًا مع تدفق المهام كنموذج يحتذى بهCGraph ، ولن يذكروهم واحدًا تلو الآخر. الجميع مرحب بهم للانضمام والبناء معًا