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 مراجعه نمایید.



علی‌اکبر محمدی