Каковы различия и возможные общие черты закрытий и приправления карри?

Вы можете создать специальный поток, который начнет новый процесс. Затем добавьте очередь для связи с этим потоком

Псевдокод:

public class ApiController
{
  private Queue<string> queue = new Queue<string>();
  private object sync = new object();

  public ApiController()
  {
    // create a thread here or on web app start
  }

  private void ThreadProc()
  {
    while (true)
    {
      string filename = null;
      lock (sync)
      {
        if (queue.Count() > 0)
          filename = queue.Dequeue();
      }

      if (filename != null)
      {
        // create process
      }
      else
      {
        Thread.Sleep(100);
        continue;
      }
    }
  }

  public void ApiMethod()
  {
    // save file from request stream and pass name of this file to thread
    string filename = ...
    lock (sync)
      queue.Enqueue(filename);
  }
}

Этот подход позволяет вам иметь только один запущенный процесс в любое время

8
задан Nope 17 December 2008 в 15:29
поделиться

1 ответ

Приправление карри является действительно математическим понятием прежде всего. Это - справедливое наблюдение, которые для любого не функционируют f: S0×... Sn → R, можно определить новую функцию fprime (просто нашел ошибку скидки с цены!) с n-1 параметрами, где тот первый параметр заменяется константой. Так, если у Вас есть функция add(a,b), можно определить новую функцию add1(b) как

add1(b) ::= add(1, b)

... чтение ":: =" как "определяется, чтобы быть".

Закрытие является большим количеством концепции программирования. (Конечно, все в программировании - математическое понятие также, но закрытия стали интересными из-за программирования.) При построении закрытия Вы связываете одну или несколько переменных; Вы создаете блок кода, который имеет некоторые переменные, связанные с ним.

Отношения - то, что можно использовать закрытие для реализации приправления карри: Вы могли создать Ваш add1 функция выше путем создания закрытия, в котором тот первый параметр связывается с 1.

6
ответ дан 5 December 2019 в 22:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: