Это то, что я сделал на моем Mac:
открыл файл ~/.zshrc
, используя sudo nano ~/.zshrc
, затем вставил
export PATH=$PATH:/usr/local/go/bin
сохранить и выйти (ctrl + s, ctrl + x затем нажмите y), затем запустили
. ~/.zshrc
go был запущен и запущен, что подтверждается вводом команды go в командной строке.
Синтаксис потока может быть статическим, но его реализация в операционных системах и виртуальных машинах может измениться
Ваш язык сценариев может использовать настоящие потоки в одной ОС и поддельные потоки в другой.
Если у вас есть требования к производительности, возможно, стоит обратить внимание на то, чтобы потоки со сценарием проходили на наиболее выгодном уровне ОС. Потоки пользовательского пространства будут быстрее, но потоки ядра будут лучше для значительной блокировки активности потоков.
You can freely multi-thread with the Python language in implementations such as Jython (on the JVM, as @Reginaldo mention Groovy is) and IronPython (on .NET). For the classical CPython implementation of the Python language, as @Dan's comment mentions, multiprocessing
(rather than threading
) is the way to freely use as many cores as you have available
You seem use a definition of "scripting language" that may raise a few eyebrows, and I don't know what that implies about your other requirements.
Anyway, have you considered TCL? It will do what you want, I believe.
Since you are including fairly general purpose languages in your list, I don't know how heavy an implementation is acceptable to you. I'd be surprised if one of the zillion Scheme implementations doesn't to native threads, but off the top of my head, I can only remember the MzScheme used to but I seem to remember support was dropped. Certainly some of the Common LISP implementations do this well. If Embeddable Common Lisp (ECL) does, it might work for you. I don't use it though so I'm not sure what the state of it's threading support is, and this may of course depend on platform.
Update Also, if I recall correctly, GHC Haskell doesn't do quite what you are asking, but may do effectively what you want since, again, as I recall, it will spin of a native thread per core or so and then run its threads across those....
CSScript in combination with Parallel Extensions shouldn't be a bad option. You write your code in pure C# and then run it as a script.
Поскольку Groovy основан на виртуальной машине Java, вы получаете поддержку настоящих потоков.
F # в .NET 4 имеет отличную поддержку параллельного программирования и очень хорошую производительность, а также поддерживает файлы .fsx, специально разработанные для написания сценариев. Я пишу все свои сценарии на F #.