Английский вариант: English
Java:
public static void main(String[] args) {
class Worker implements Runnable {
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(String.format("thread %d finished",
this.hashCode()));
}
}
ThreadPoolExecutor executor = new ThreadPoolExecutor(100, 200, 10,
TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
executor.allowCoreThreadTimeOut(true);
for (int i = 0; i < 200; i++) {
executor.execute(new Worker());
}
executor.shutdown();
}
C++:
int main(int argc, const char **argv) {
ESystem::init(argc, argv); //инициализация cxxjdk!
class Worker : public ERunnable {
public:
virtual void run() {
try {
EThread::sleep(1000);
} catch (EInterruptedException& e) {
e.printStackTrace();
}
ESystem::out->println(EString::formatOf("thread %d finished",
this->hashCode()).c_str());
};
};
EThreadPoolExecutor* executor = new EThreadPoolExecutor(100, 200, 10,
ETimeUnit::SECONDS, new ELinkedBlockingQueue<ERunnable>());
executor->allowCoreThreadTimeOut(true);
for (int i = 0; i < 200; i++) {
executor->execute(new Worker());
}
executor->shutdown();
executor->awaitTermination();
delete executor; //освобождение ресурсов объекта!
}
Достаточно ли привлекателен этот пример?
Дополнительные примеры:
testefc.cpp
testnio.cpp
testbson.cpp
testc11.cpp
testssl.cpp
Тест EConcurrentHashmap:
Программное окружение:
put 20 потоков && get 20 потоков
Аппаратное окружение:
Название модели: MacBook Pro
Идентификационный номер модели: MacBookPro10,2
Имя процессора: Intel Core i5
Скорость процессора: 2,6 ГГц
Количество процессоров: 1
Общее количество ядер: 2
Результаты теста:
jdk класс | cxxjdk класс |
---|---|
Object[] | EA |
AbstractCollection | EAbstractCollection |
AbstractList | EAbstractList |
AbstractMap | EAbstractMap |
AbstractQueue | EAbstractQueue |
AbstractSet | EAbstractSet |
AlreadyBoundException | EAlreadyBoundException |
ArithmeticException | EArithmeticException |
Array | EArray |
ArrayDeque | EArrayDeque |
ArrayList | EArrayList |
Arrays | EArrays |
AuthenticationException | EAuthenticationException |
Base64 | EBase64 |
BigDecimal | EBigDecimal |
BigInteger | EBigInteger |
--------------------------------- | --------------------------------- |
ByteArrayInputStream | ЭByteArrayInputStream |
ByteArrayOutputStream | ЭByteArrayOutputStream |
CRC32 | ЭCRC32 |
Календарь | ЭКалендарь |
Символ | ЭСимвол |
CheckedInputStream | ЭCheckedInputStream |
Контрольная сумма | ЭКонтрольная сумма |
ClassCastException | ЭClassCastException |
Коллекция | ЭКоллекция |
Коллекции | ЭКоллекции |
Сравнимый | ЭСравнимый |
Компаратор | ЭКомпаратор |
Условие | ЭУсловие |
ConnectException | ЭConnectException |
DataFormatException | ЭDataFormatException |
DatagramPacket | ЭDatagramPacket |
DatagramSocket | ЭDatagramSocket |
Ввод данных | ЭВвод данных |
DataInputStream | ЭDataInputStream |
Вывод данных | ЭВывод данных |
DataOutputStream | ЭDataOutputStream |
Дата | ЭДата |
Deflater | ЭDeflater |
DeflaterOutputStream | ЭDeflaterOutputStream |
Deque | ЭDeque |
Словарь | ЭСловарь |
Двойной | ЭДвойной |
EOFException | ЭEOFException |
EmptyStackException | ЭEmptyStackException |
Перечисление | ЭПеречисление |
EventListener | ЭEventListener |
EventListenerProxy | ЭEventListenerProxy |
Объект события | ЭОбъект события |
Исключение | ЭИсключение |
Файл | ЭФайл |
FileInputStream | ЭFileInputStream |
FileNotFoundException | ЭFileNotFoundException |
FileOutputStream | ЭFileOutputStream |
Фильтр имени файла | ЭФильтр имени файла |
FilterInputStream | ЭFilterInputStream |
FilterOutputStream | ЭFilterOutputStream |
Плавающий | ЭПлавающий |
GZIPInputStream | ЭGZIPInputStream |
GZIPOutputStream | ЭGZIPOutputStream |
HashMap | ЭHashMap |
HashSet | ЭHashSet |
IOException | ЭIOException |
IPAddressUtil | ЭIPAddressUtil |
IdentityHashMap | ЭIdentityHashMap |
IllegalArgumentException | ЭIllegalArgumentException |
IllegalStateException | ЭIllegalStateException |
IllegalThreadStateException | ЭIllegalThreadStateException |
IndexOutOfBoundsException | ЭIndexOutOfBoundsException |
InetAddress | ЭInetAddress |
InetSocketAddress | ЭInetSocketAddress |
Inflater | ЭInflater |
------------------------------------ | |
InputStream | Поток ввода |
Integer | Целое число |
InterfaceAddress | Адрес интерфейса |
InterruptedException | Прерывание потока |
InterruptedIOException | Прерванное исключение ввода-вывода |
Interruptible | Прерываемый |
Iterable | Итерируемый |
Iterator | Итератор |
LLong | Длинное целое |
LinkedList | Связанный список |
List | Список |
ListIterator | Итератор списка |
Lock | Блокировка |
MalformedURLException | Некорректный URL |
Map | Карта |
MatchResult | Результат сопоставления |
Matcher | Сопоставитель |
Math | Математика |
MulticastSocket | Многоадресный сокет |
NavigableMap | Навигационная карта |
NavigableSet | Навигационное множество |
NetworkInterface | Сетевой интерфейс |
NoRouteToHostException | Нет маршрута к хосту |
NoSuchElementException | Элемент не найден |
NotYetBoundException | Ещё не связан |
NullPointerException | Исключение нулевого указателя |
Number | Число |
NumberFormatException | Исключение формата числа |
Object | Объект |
Observable | Наблюдаемый объект |
Observer | Наблюдатель |
OutOfMemoryError | Ошибка нехватки памяти |
OutputStream | Поток вывода |
Pattern | Шаблон |
PatternSyntaxException | Синтаксическая ошибка шаблона |
PipedInputStream | Канал ввода |
PipedOutputStream | Канал вывода |
PortUnreachableException | Порт недоступен |
PrintStream | Печатающий поток |
PriorityQueue | Очередь с приоритетом |
Process | Процесс |
ProtocolException | Исключение протокола |
Queue | Очередь |
Random | Случайное число |
RandomAccessFile | Файл произвольного доступа |
Reference | Ссылка |
Runnable | Выполняемый |
Runtime | Время выполнения |
RuntimeException | Исключение времени выполнения |
SaslException | Исключение SASL |
SecureRandom | Безопасный генератор случайных чисел |
SecurityException | Исключительная ситуация безопасности |
Sentry | Часовой |
SequenceInputStream | Потоковый вход последовательности |
ServerSocket | Сервер сокета |
Set | Множество |
Short | Короткое целое |
Socket | ESocket |
SocketException | ESocketException |
SocketOptions | ESocketOptions |
SocketTimeoutException | ESocketTimeoutException |
SortedMap | ESortedMap |
SortedSet | ESortedSet |
Stack | EStack |
String | EString |
StringTokenizer | EStringTokenizer |
System | ESystem |
Thread | EThread |
ThreadGroup | EThreadGroup |
ThreadLocal | EThreadLocal |
ThreadLocalStorage | EThreadLocalStorage |
Throwable | EThrowable |
TimeUnit | ETimeUnit |
Timer | ETimer |
TimerTask | ETimerTask |
TreeMap | ETreeMap |
TreeSet | ETreeSet |
URI | EURI |
URISyntaxException | EURISyntaxException |
URLDecoder | EURLDecoder |
URLEncoder | EURLEncoder |
URLString | EURLString |
UnknownHostException | EUnknownHostException |
UnknownServiceException | EUnknownServiceException |
UnsupportedAddressTypeException | EUnsupportedAddressTypeException |
UnsupportedEncodingException | EUnsupportedEncodingException |
UnsupportedOperationException | EUnsupportedOperationException |
Vector | EVector |
try {xxx} finally {yyy} | ON_FINALLY_NOTHROW(yyy) {xxx}} |
jdk класс | cxxjdk класс |
---|---|
synchronized | SYNCHRONIZED |
AbstractConcurrentCollection | EAbstractConcurrentCollection |
AbstractConcurrentQueue | EAbstractConcurrentQueue |
AbstractExecutorService | EAbstractExecutorService |
AbstractOwnableSynchronizer | EAbstractOwnableSynchronizer |
AbstractQueuedSynchronizer | EAbstractQueuedSynchronizer |
AtomicBoolean | EAtomicBoolean |
AtomicCounter | EAtomicCounter |
AtomicInteger | EAtomicInteger |
AtomicLLong | EAtomicLLong |
AtomicReference | EAtomicReference |
BlockingQueue | EBlockingQueue |
BrokenBarrierException | EBrokenBarrierException |
Callable | ECallable |
CancellationException | ECancellationException |
CompletionService | ECompletionService |
ConcurrentHashMap | EConcurrentHashMap |
ConcurrentLinkedQueue | EConcurrentLinkedQueue |
ConcurrentModificationException | EConcurrentModificationException |
ConcurrentNavigableMap | EConcurrentNavigableMap |
ConcurrentSkipListMap | EConcurrentSkipListMap |
CopyOnWriteArrayList | ECopyOnWriteArrayList |
CountDownLatch | ECountDownLatch |
CyclicBarrier | ECyclicBarrier |
-------------------------------------- | ------------------------------------ |
Иксекутионэксепшн | Эиксекутионэксепшн |
Экьютор | Эйэкьютор |
Экьюторкомплетионсервис | Эйэкьюторкомплетион сервис |
Экьюторсервис | Эйэкьютор сервис |
Экьюторы | Эйэкьюторы |
Фьючер | Эфьючер |
Фьючертаск | Эфьючертаск |
Линкедблокенгкью | Элинкед блокенг кью |
Линкедтрансферкью | Элинкедтрансфер кью |
Локсаппорт | Эл оукс саппорт |
Ридвайтрелок | Эр и д вайтре лок |
Реэнтрантлок | Эр энтрант лок |
Реэнтрантреадватрелок | Эр энтрантреадватер лок |
Рджектедекстрионэксепшн | Эр джекетедекстрион эксепшн |
Рджекетедекстрионхэндлер | Эр джекетедекстрион хендлер |
Раннаблфьючер | Эр раннабл фьючер |
Семафор | Эсемафор |
Синкронкускью | Эсинхронкус кью |
Тиредфактори | Эт тиред фактори |
Тредлокаланрандом | Эт тред локалан рандом |
Пулэкзекутор | Эпул экзекутор |
Тайм аут эксепшн | Этайм аут эксепшн |
Трансферкью | Этрансфер кью |
Унсейф | Энсейф |
Мап | Эм конкрент мап |
Сортедмап | Эм конкрент сортед мап |
jdk класс | cxxjdk класс |
---|---|
Олреадиконнектедекстионэксепшн | Эолреадиконнектдекстион эксепшн |
Асинхронкус клоуз эксепшн | Эасинхронкусклоуз эксепшн |
Баффер оверфлоу эксепшн | Эбаффер овер флоу эксепшн |
Баффер андерфлоу эксепшн | Эбаффер андер флоу эксепшн |
Байтенканал | Эй байтен канал |
Канселкей эксепшн | Эк анселкей эксепшн |
Канал | Эй канал |
Чаннел инпутстриам | Эй чаннел инпут стриам |
Клозденбайинтеррупт эксепшн | Эклозден бай интер рупт эксепшн |
Клозд канал эксепшн | Эклозд канал эксепшн |
Клозд селектор эксепшн | Эклозд селектор эксепшн |
Коннекшен пендинг эксепшн | Эк коннешен пендинг эксепшн |
Датаграмм канал | Эд датаграмм канал |
Файл канал | Эй файл канал |
Файл лок | Эй файл лок |
Икс байтен буфер | Эй икс байтен буффер |
Иллегаль блокинг мод эксепшн | Эиллегаль блокинг мод эксепшн |
Интерруптибл канал | Эй интерруптибл канал |
Инвалид марк эксепшн | Эинвалид марк эксепшн |
Маппед байтен буфер | Эм мапед байтен буффер |
Мембершип кей | Эм мембершип кей |
Мултикаст канал | Эм мултикаст канал |
Нэйтив тред сэт | Энэйтив тред сэт |
Но коннекшен пендинг эксепшн | Эн но коннекшен пендинг эксепшн |
Норреадабл канал эксепшн | Эн норреадабл канал эксепшн |
Нор виртибл канал эксепшн | Эн нор виртибл канал эксепшн |
Наует коннектедекстион эксепшн | Эн наует коннекте декстион эксепшн |
Оверлаппинг файл лок эксепшн | Эоверлаппинг файл лок эксепшн |
Реадабл буфер эксепшн | Эр реадабл буфер эксепшн |
Селектабл канал | Эс селектабл канал |
Секлекшн кей | Эс секлекшн кей |
------------------------------- | |
ServerSocketChannel | EServerSocketChannel |
SocketChannel | ESocketChannel |
UnresolvedAddressException | EUnresolvedAddressException |
cxxjdk类 | 类描述 |
---|---|
EConfig | 应用配置管理 |
EByteBuffer | 二进制数据缓存 |
ESharedPtr | C++智能指针 |
ELockPool | SpinLock池化管理类 |
EOrderAccess | 内存访问模型辅助类 |
EFork | Создание процесса в Unix/Linux системе |
ESimpleCondition | Условие в стиле C++ |
ESimpleLock | Мьютекс-блокировка в стиле C++ |
ESpinLock | Оболочка для спин-блокировки в C++ |
ESimpleMap | Оболочка таблицы map в C++ |
ESimpleStack | Оболочка стека в C++ |
ESimpleVector | Оболочка вектора в C++ |
ESimpleEnumeration | Перечисление для ESimpleXXX |
EStream | Класс для работы с потоками ввода-вывода |
EOS | Классы, связанные с операционной системой |
EAtomic | Классы для атомарных операций |
EScopeGuard | Вспомогательный класс для управления ресурсами через локальные переменные и деструкторы в стиле C++11 |
EAtomicDouble | Класс для атомарной работы с double |
ENetWrapper | Вспомогательные инструменты для работы с сокетами |
EDomainSocket | Сокет Unix Domain |
EDomainServerSocket | Сервер сокетов Unix Domain |
详见 Guide文档
java.security.*;
Email: cxxjava@163.com
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )