Libdill: لایبرری زبان C به منظور ایجاد Concurrency در برنامه‌ها

Libdill: لایبرری زبان C به منظور ایجاد Concurrency در برنامه‌ها

Libdll یک لایبرری برای زبان برنامه‌نویسی C است که ساختار نوشتن برنامه‌هایی که به صورت متقارن و هم‌زمان اجرا می‌شوند را برای دولوپرهای این زبان راحت‌تر می‌کند.

اولین کسی باشید که به این سؤال پاسخ می‌دهید

به عنوان مثال، کد زیر دو فانکشن که متشکل از دو عبارت Hello و !World هستند را نمایش می‌دهد (این دو عبارت به ترتیب و در فواصل زمانی تصادفی به نمایش در می‌آیند). این برنامه به مدت پنج ثانیه اجرا می‌شود و سپس پایان می‌یابد:

#include 
#include 
#include 

coroutine void worker(const char *text) {
    while(1) {
        printf("%s\n", text);
        msleep(now() + random() % 500);
    }
}

int main() {
    go(worker("Hello!"));
    go(worker("World!"));
    msleep(now() + 5000);
    return 0;
}

کدهای نوشته شده با استفاده از لایبرری Libdill مانند هر کد C دیگر، کامپایل می‌شوند و تنها مورد اضافی که به آن نیاز پیدا خواهید کرد این است که باید با لایبرری libdll ارتباط برقرار شود. برای این منظور داریم:

$ cc -ldill -o hello hello.c

Libdll تحت لیسانس MIT/X11 منتشر شده است و به منظور آشنایی بیشتر با آن می‌توانید به مستندات لایبرری Libdll مراجعه نمایید.