C++:
#include "Eco.hh"
int main(int argc, const char **argv) {
// Инициализация CxxJDK.
ESystem::init(argc, argv);
try {
EFiberScheduler scheduler;
scheduler.schedule([&](){
EServerSocket ss;
ss.setReuseAddress(true);
ss.bind(8888);
while (!gStopFlag) {
// accept
sp<ESocket> socket = ss.accept();
if (socket != null) {
// создать новое волокно
scheduler.schedule([=](){
try {
char buf[512] = {0};
// чтение
EInputStream* is = socket->getInputStream();
int n = is->read(buf, sizeof(buf));
printf("read buf=%s\n", buf);
// запись
EOutputStream* os = socket->getOutputStream();
os->write(buf, n);
} catch (EIOException& e) {
e.printStackTrace();
} catch (...) {
}
});
}
}
});
// начать расписание
scheduler.join(); // сигнал в режиме потока
//scheduler.join(4); // многопоточный режим: 4 — количество потоков
}
catch (EException& e) {
e.printStackTrace();
} catch (...) {
printf("catch all...\n");
}
ESystem::exit(0);
return 0;
}
Дополнительные примеры:
testeco.cpp
Программное окружение:
См. пример кода на C++: benchmark.cpp.
Аппаратное окружение:
Model Name: MacBook Pro
Model Identifier: MacBookPro10,2
Processor Speed: 2.6 GHz
Number of Processors: 1
Total Number of Cores: 2
Результаты тестирования:
Библиотека CxxFiber основана на CxxJDK.
Поддержка win64.
Электронная почта: cxxjava@163.com
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )