Пример #1
0
void test_threads()
{
    {
        std::cout << "non-async" << std::endl;
        std::vector<double> f1(fib(50));
        std::vector<double> f2(fib(50));
        std::vector<double> f3(fib(50));
        std::vector<double> f4(fib(50));

        std::vector<double> f_sum(f1 + f2 + f3 + f4);
        std::sort(f_sum.begin(), f_sum.end());
        print_fib(f_sum);
    }

    {
        std::cout << "async" << std::endl;
        std::future<std::vector<double> > f1(std::async(std::launch::async, []() {
            return fib(50);
        }));
        std::future<std::vector<double> > f2(std::async(std::launch::async, []() {
            return fib(50);
        }));
        std::future<std::vector<double> > f3(std::async(std::launch::async, []() {
            return fib(50);
        }));
        std::future<std::vector<double> > f4(std::async(std::launch::async, []() {
            return fib(50);
        }));

        std::vector<double> f_sum(f1.get() + f2.get() + f3.get() + f4.get());
        std::sort(f_sum.begin(), f_sum.end());
        print_fib(f_sum);
    }
}
Пример #2
0
int main(int argc, char *argv[]) {
	int i = 1;

#ifdef FIBONACCI
	if (i < argc) {
		print_fib(atoi(argv[i]));
		i++;
	}
#endif 

#ifdef REVERSE
	if (i < argc) {
		reverse(argv[i], strlen(argv[i]));
		i++;
	}
#endif

	return 0;
}
Пример #3
0
int main()
{
    print_fib(2);
    return 0;
}