LINUX.ORG.RU

История изменений

Исправление dissident, (текущая версия) :

ну… не все же программируют бомбы в юнити.:) разумная жизнь есть и за ее пределами.

Ну можно вообще все написать вот так:

Output MyFunction(Input input) const
{
    Output output(Input.someOtherValue.returnSomething());
    return output;
}

И все будет immutable. И никакие трэды не нужны. И мутексы и прочее. Как я понял fibers/coroutine позволяют писать таки human-readable async код, а не Haskell, но при этом избежав мутексов, но при этом без блокировок.

я просто изложил некую систематизацию, как одно от другого отличать. щас посмотрю что там корутины в юнити и скажу что нибудь конкретное

Ну в PDF из ссылок выше хорошо описано.

Fiber: Один трэд создает их сколько угодно. В них есть yield. Мутексы и прочее не нужны. Каждый yield передает управление выбранному шедулеру для данного трэда (например просто циклу, который вызываеть следущий fiber до его yield и так для каждого fiber, пока они все не издохнут). Тип шедулера можно выбрать (просто цикл, хитроумный цикл и т.д.)

Coroutine: Один трэд создает их сколько угодно. В них есть yield. Мутексы и прочее не нужны. Каждый yield передает управление трэду, который их создал. Их нужно руками резюмить. Сколько и какие решает писатель кода этого самого трэда.

Coroutine можно превратить в fiber написав scheduler.

Я просто хотел понять:

  • Прав ли я, что корутины в Unity - это fibers?
  • Правильно ли я понял эти определения и примеры вообще?

Исправление dissident, :

ну… не все же программируют бомбы в юнити.:) разумная жизнь есть и за ее пределами.

Ну можно вообще все написать вот так:

Output MyFunction(Input input) const
{
    Output output;
    output.someValue = Input.someOtherValue.returnSomething()
    return output;
}

И все будет immutable. И никакие трэды не нужны. И мутексы и прочее. Как я понял fibers/coroutine позволяют писать таки human-readable async код, а не Haskell, но при этом избежав мутексов, но при этом без блокировок.

я просто изложил некую систематизацию, как одно от другого отличать. щас посмотрю что там корутины в юнити и скажу что нибудь конкретное

Ну в PDF из ссылок выше хорошо описано.

Fiber: Один трэд создает их сколько угодно. В них есть yield. Мутексы и прочее не нужны. Каждый yield передает управление выбранному шедулеру для данного трэда (например просто циклу, который вызываеть следущий fiber до его yield и так для каждого fiber, пока они все не издохнут). Тип шедулера можно выбрать (просто цикл, хитроумный цикл и т.д.)

Coroutine: Один трэд создает их сколько угодно. В них есть yield. Мутексы и прочее не нужны. Каждый yield передает управление трэду, который их создал. Их нужно руками резюмить. Сколько и какие решает писатель кода этого самого трэда.

Coroutine можно превратить в fiber написав scheduler.

Я просто хотел понять:

  • Прав ли я, что корутины в Unity - это fibers?
  • Правильно ли я понял эти определения и примеры вообще?

Исправление dissident, :

ну… не все же программируют бомбы в юнити.:) разумная жизнь есть и за ее пределами.

Ну можно вообще все написать вот так:

Output MyFunction(Input input) const
{
    Output output;
    output.someValue = Input.someOtherValue.returnSomething()
    return output;
}

И все будет immutable. И никакие трэды не нужны. И мутексы и прочее. Как я понял fibers/coroutine позволяют писать таки human-readable async код, а не Haskell, но при этом избежав мутексов, но при этом без блокировок.

я просто изложил некую систематизацию, как одно от другого отличать. щас посмотрю что там корутины в юнити и скажу что нибудь конкретное

Ну в PDF из ссылок выше хорошо описано.

Fiber: Один трэд создает их сколько угодно. В них есть yield. Мутексы и прочее не нужны. Каждый yield передает управление выбранному шедулеру для данного трэда (например просто циклу, который вызываеть следущий fiber до его yield и так для каждого fiber, пока они все не издохнут). Тип шедулера можно выбрать (просто цикл, хитроумный цикл и т.д.)

Coroutine: Один трэд создает их сколько угодно. В них есть yield. Мутексы и прочее не нужны. Каждый yield передает управление трэду, который их создал. Их нужно руками резюмить. Сколько и какие решает писатель кода этого самого трэда.

Coroutine можно превратить в fiber написав scheduler.

Я просто хотел понять:

  • Прав ли я, что корутины в Unity - это fibers?
  • Правильно ли я понял эти определения и примеры вообще

Исправление dissident, :

ну… не все же программируют бомбы в юнити.:) разумная жизнь есть и за ее пределами.

Ну можно вообще все написать вот так:

Output MyFunction(Input input) const
{
    Output output;
    output.someValue = Input.someOtherValue.returnSomething()
    return output;
}

И все будет immutable. И никакие трэды не нужны. И мутексы и прочее. Как я понял fibers/coroutine позволяют писать таки human-readable код, а не Haskell, но при этом избежав мутексов.

я просто изложил некую систематизацию, как одно от другого отличать. щас посмотрю что там корутины в юнити и скажу что нибудь конкретное

Ну в PDF из ссылок выше хорошо описано.

Fiber: Один трэд создает их сколько угодно. В них есть yield. Мутексы и прочее не нужны. Каждый yield передает управление выбранному шедулеру для данного трэда (например просто циклу, который вызываеть следущий fiber до его yield и так для каждого fiber, пока они все не издохнут). Тип шедулера можно выбрать (просто цикл, хитроумный цикл и т.д.)

Coroutine: Один трэд создает их сколько угодно. В них есть yield. Мутексы и прочее не нужны. Каждый yield передает управление трэду, который их создал. Их нужно руками резюмить. Сколько и какие решает писатель кода этого самого трэда.

Coroutine можно превратить в fiber написав scheduler.

Я просто хотел понять:

  • Прав ли я, что корутины в Unity - это fibers?
  • Правильно ли я понял эти определения и примеры вообще

Исправление dissident, :

ну… не все же программируют бомбы в юнити.:) разумная жизнь есть и за ее пределами.

Ну можно вообще все написать вот так:

Output MyFunction(Input) const
{
    Output output;
    output.someValue = Input.someOtherValue.returnSomething()
    return output;
}

И все будет immutable. И никакие трэды не нужны. И мутексы и прочее. Как я понял fibers/coroutine позволяют писать таки human-readable код, а не Haskell, но при этом избежав мутексов.

я просто изложил некую систематизацию, как одно от другого отличать. щас посмотрю что там корутины в юнити и скажу что нибудь конкретное

Ну в PDF из ссылок выше хорошо описано.

Fiber: Один трэд создает их сколько угодно. В них есть yield. Мутексы и прочее не нужны. Каждый yield передает управление выбранному шедулеру для данного трэда (например просто циклу, который вызываеть следущий fiber до его yield и так для каждого fiber, пока они все не издохнут). Тип шедулера можно выбрать (просто цикл, хитроумный цикл и т.д.)

Coroutine: Один трэд создает их сколько угодно. В них есть yield. Мутексы и прочее не нужны. Каждый yield передает управление трэду, который их создал. Их нужно руками резюмить. Сколько и какие решает писатель кода этого самого трэда.

Coroutine можно превратить в fiber написав scheduler.

Я просто хотел понять:

  • Прав ли я, что корутины в Unity - это fibers?
  • Правильно ли я понял эти определения и примеры вообще

Исходная версия dissident, :

ну… не все же программируют бомбы в юнити.:) разумная жизнь есть и за ее пределами.

Ну можно вообще все написать вот так:

Output MyFunction(Input) const { Output output; output.someValue = Input.someOtherValue.returnSomething() return output; }

И все будет immutable. И никакие трэды не нужны. И мутексы и прочее. Как я понял fibers/coroutine позволяют писать таки human-readable код, а не Haskell, но при этом избежав мутексов.

я просто изложил некую систематизацию, как одно от другого отличать. щас посмотрю что там корутины в юнити и скажу что нибудь конкретное

Ну в PDF из ссылок выше хорошо описано.

Fiber: Один трэд создает их сколько угодно. В них есть yield. Мутексы и прочее не нужны. Каждый yield передает управление выбранному шедулеру для данного трэда (например просто циклу, который вызываеть следущий fiber до его yield и так для каждого fiber, пока они все не издохнут). Тип шедулера можно выбрать (просто цикл, хитроумный цикл и т.д.)

Coroutine: Один трэд создает их сколько угодно. В них есть yield. Мутексы и прочее не нужны. Каждый yield передает управление трэду, который их создал. Их нужно руками резюмить. Сколько и какие решает писатель кода этого самого трэда.

Coroutine можно превратить в fiber написав scheduler.

Я просто хотел понять:

  • Прав ли я, что корутины в Unity - это fibers?
  • Правильно ли я понял эти определения и примеры вообще