Язык D - Thread vs spawn

Я пытаюсь заняться программированием с помощью D и столкнулся с некоторой проблемой. Я начал с использования класса Thread core.thread, который обеспечивает поддержку запуска потока и последующего присоединения к нему текущего потока. D, похоже, хочет, чтобы люди использовали передачу сообщений вместо методов блокировки / синхронизации, поэтому я подумал, что попробую, но каждый пример передачи сообщений, который я вижу, требует tid, который я не могу получить из класса Thread. Примеры кода, которые я вижу в Интернете, на самом деле используют spawn, который возвращает tid вместо использования оболочки Thread, а затем вы используете tid для передачи сообщений в поток. Но теперь, похоже, нет никакого способа присоединиться к потоку на основе его tid! И не только это, вы, похоже, не можете создать делегата, что требует от меня добавления ненужного уровня косвенности.

Итак, мой вопрос, прежде всего, заключается в том, почему существуют два совершенно разных типа потоковой передачи? И во-вторых, почему они оба такие неполные, когда вместе они предоставляют практически все, что вам может понадобиться?

12
задан Gray 29 February 2012 в 19:22
поделиться