So implementieren Sie Multi-Threads in Common Lisp

8

Es scheint, dass es bereits mehrere Thread-Implementierungen gibt, da ich bemerkt habe, dass Bordeaux-Threads , Portable-Threads , und" The Common Lisp Cook Book "bietet auch eine Möglichkeit, Multi-Threads zu implementieren, das Paket mp was ich nicht weiß, wie man es in mein Programm einbezieht, kann ich dieses Paket nicht finden.

Das Problem ist, wie kann ich eine richtige Multi-Threads-Bibliothek wählen, um meine Nachfrage zu erfüllen, da ich auch ein C-Programmierer bin, es ist besser wie Pthread, aber es spielt keine Rolle, ich frage mich, es ist das am häufigsten verwendete Multi -threads-Bibliothek, oder was ist der normale Weg für Multi-Threads-Programmierung in Common Lisp.

    
levin li 24.12.2011, 12:33
quelle

2 Antworten

7

Laut Quicklisp-Statistiken für November Bordeaux-Threads werden stark verwendet, aber ich sehe keine Portable-Threads oder andere Implementierungen. Also ich denke, du könntest es versuchen und sehen, ob es erfüllt Ihre Anforderungen und sucht nach einer anderen Implementierung, wenn dies nicht der Fall ist.

Ich habe es kaum benutzt, aber ich fand es einfach zu bedienen und das API-Dokumentation ist ziemlich klar.

    
Daimrod 24.12.2011, 12:42
quelle
7

Tatsächlich ist der De-facto-Threading-Standard für Common Lisp Bordeaux Threads (bt) , was eine Portabilitätsebene über Threading-APIs verschiedener Implementierungen ist.

mp (was für Multi-Processing steht) ist, wie threading-API in LispWorks aufgerufen wird (und, wenn ich mich nicht irre, Franz CL). Sie können es direkt verwenden (genau wie sb-thread in SBCL), wenn Sie für eine bestimmte Implementierung entwickeln, oder Sie können sich auf bt verlassen, wenn Sie Portabilität über alle derzeit aktiven Implementierungen mit Threading-Unterstützung anstreben (CLISP doesn ' t haben es überhaupt).

    
Vsevolod Dyomkin 24.12.2011 12:45
quelle