Могу ли я выполнять две функции одновременно?

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

Я изучаю язык C и написал следующее:

#include <stdlib.h>
#include <stdio.h>

int comp(const char *a, const char *b) {
  return *a - *b;
}

int main() {
  char str[] = "Hello, world! I'm learning C and it's awesome!";
  qsort(str, sizeof(str) - 1, sizeof(char), comp); // -1 because of NUL-terminator.
  puts(str);
  return 0;
}

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


P.S. Я знаю, что мне нужно профилировать код перед оптимизацией, но пока предположим, что это очень медленная операция.

5
задан Dutchman 28 November 2011 в 17:33
поделиться