Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, LuciferSaratov, Вы писали: LS>>Ну, TCL например. Насколько я знаю, там у него по интерпретатору на поток, поэтому без глобального лока. MC>А память между потоками разделяемая?
Насколько я знаю, нет — предлагается взаимодействие через очереди сообщений.
Здравствуйте, c-smile, Вы писали: CS>А что точно такое "шаред мемори между потоками"?
Что угодно, что можно так назвать. Например, если есть понятие "объекта" а-ля питон — чтобы к одному объекту можно было бы обращаться из разных потоков (без всякого там копирования).
Здравствуйте, Critical Error, Вы писали:
CE>Здравствуйте, c-smile, Вы писали:
CS>>А какие проблемы вообще запустить VM в native thread? CS>>Или нужны threading примитивы встроенные в язык?
CS>>Если второе то язык имени меня такое имеет: http://c-smile.sourceforge.net/
CS>>Вот например: CS>>http://c-smile.sourceforge.net/samples/threads.htm
CS>>Примитивы thread (объект) и synchronized(mutex) {}
CE>А можно поподробнее об многопоточности в Вашем скриптовом языке?
CE>Как например у Вас реализована работа с GC. Вот предположим объект передается в другой тред и получаются 2 ссылки из разных потоков? Или делается полное копирование объекта?
Объект живет в heap. Heap общий для всех thread.
CE>Или вот если объект видят одновременно два треда, то каким образом удается его не порушить? Блокируется каждый объект в отдельности? Или синхронизацию нужно делать также как и в С++, вручную?
Так же как и в java. Я не знаю как классифицировать, это вручную или нет?
Здравствуйте, Mr.Cat, Вы писали:
MC>В итоге разыскиваются lua или python с нативными потоками (поскольку я не знаю, как в них обстоят дела с сабжем — решил поинтересоваться тут, вдруг кто чего подскажет). Цель — внесение некоторых изменений в имплементацию.
Здравствуйте, Aera, Вы писали: A>Без GIL есть stackless python, со всякими threading штучками.
Хм... там, я так понимаю, упор на легкие потоки и их взаимодействие путем обмена сообщениями. Немного не в ту степь.
Здравствуйте, c-smile, Вы писали:
CS>Здравствуйте, alsemm, Вы писали:
A>>Здравствуйте, c-smile, Вы писали:
CS>>>Вот например: CS>>>http://c-smile.sourceforge.net/samples/threads.htm
CS>>>Примитивы thread (объект) и synchronized(mutex) {} A>>А conditional есть?
CS>Нет, так далеко я не заходил. Идея была сделать то же самое что и в Java.
Так в Java они есть — на любом объекте можно сделать wait()/notify(). Более того, в Java SE5 появились пакеты java.util.concurrent, java.util.concurrent.atomic и java.util.concurrent.locks — все это для более тонкой настройки синхронизации. Целый новый мир
CS>Но это все неправильно имхо. Там должен быть сугубый messaging между потоками. Никаких mutex и прочего.
Это мне чем-то напоминает кооперативную многозадачность, оно?