Libcsp

Libcsp 是一个高性能 C 语言并发库,受 CSP 模型影响而成。Libcsp 的速度比 Golang 快 10 倍。



特性:



支持多 CPU。
高性能调度。
编译时静态分析堆栈大小。
Lock-free 通道。
支持 netpoll 和 timer。
Golang:



go foo(arg1, arg2, arg3)



var wg sync.WaitGroup
wg.Add(2)
go func() { defer wg.Done(); foo(); }()
go func() { defer wg.Done(); bar(); }()
wg.Wait()



runtime.Gosched()



chn := make(chan int, 1 « 6)
num = <-chn
chn <- num



timer := time.AfterFunc(time.Second, foo)
timer.Stop()
Libcsp:



async(foo(arg1, arg2, arg3));



sync(foo(); bar());



yield();



chan_t(int) *chn = chan_new(int)(6);
chan_pop(chn, &num);
chan_push(chn, num);



timer_t timer = timer_after(timer_second, foo());
timer_cancel(timer);





支持多核
高性能调度器
编译时栈大小静态分析
受 Disruptor 启发的 Lock-free Channel
支持 netpoll 和 timer
Github: https://github.com/shiyanhui/libcsp



文档: https://libcsp.com


Category golang