C 并发控制库:MILL

fpcm 9年前

MILL 为 C 语言提供了 Go 语言风格的并发控制。

示例代码:

#include <stdio.h>  #include <mill.h>     void worker(int count, const char *text, chan ch) {      int i;      for(i = 0; i != count; ++i) {          printf("%s\n", text);          musleep(10000);      }      chs(ch, int, 0);      chclose(ch);  }     int main() {         chan ch1 = chmake(int, 0);      go(worker(4, "a", chdup(ch1)));      chan ch2 = chmake(int, 0);      go(worker(2, "b", chdup(ch2)));         choose {      in(ch1, int, val):          printf("coroutine 'a' have finished first!\n");      in(ch2, int, val):          printf("coroutine 'b' have finished first!\n");      end      }         chclose(ch2);      chclose(ch1);         return 0;  }

项目主页:http://www.open-open.com/lib/view/home/1430536075412