簡體   English   中英

ISO C中的跨平台並發庫

[英]Cross-platform concurrency lib in ISO C

我想為C創建或找到一個簡單的,獨立於平台的並發(aka線程)庫。我想在不使用依賴於OS的線程API的情況下實現這一點。 它不需要是“真正的線程”,這就是為什么我避免使用該術語的原因。 實現此庫的程序應作為單個進程出現在OS中。

我研究了一些選項,例如OpenMP,適用於Windows的hacky pthreads實現,Intel Cilk Plus,Duff設備的變體(看起來很有希望)等等。 我已經在這個網站上搜尋潛在客戶。 是時候樹立自己的路了。

我已經縮小了范圍。 我想在盡可能接近標准C的情況下執行此操作(最好避免使用C11,Boost等。)理想情況下,我想完全不使用外部庫來執行此操作。 如果必須使用它們,則不能使用運行時。

如果我知道從哪里開始,我完全有信心可以實現這一目標。 我不是C語言方面的專家,但是我是一個非常有能力的自學老師。 我正在尋找的是有關實現此庫的建議,指針或想法。

目前的想法:我應該偽造或重新實現程序集,程序指針,返回指針等程序集的共享內存模型。叫我瘋了...

相關文章: 線程實現 (第一個答案。)我正在尋找更多類似的東西。

同樣相關: http : //www.avrfreaks.net/index.php? name=PNphpBB2& file= viewtopic&t= 54489

我曾經在Turbo C中僅使用setjmp和longjmp(當然還有一些用於堆積堆棧的asm)構建了一個線程子系統(合作)-這不是我要再做的事情。 可以做到,但是我認為不使用非標准C的願望是不明智的。

我們使用pthreads(在Windows平台上使用pthread w32綽綽有余),並且在所有地方都支持所有這些出色的C11線程功能之前,您將獲得盡可能多的跨平台支持。 我的建議是重新考慮您的厭惡-您正在為痛苦的世界做好准備。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM