Реалізація потоків в ядрі Linux

Нить – це популярна сьогодні програмна абстракція Вона забезпечує виконання декількох потоків в спільно використовуваному адресному просторі памяті Потоки також можуть спільно використовувати відкриті файли та інші ресурси Нить використовується дляпаралельного програмування (concurrent programming), Що на багатопроцесорних системах забезпечує істинний паралелізм

Планування потоків

Java може працювати як на однопроцесорних, так і на багатопроцесорних компютерах, в однопотокових і багатопоточних системах, так що відносно потоків даються лише загальні гарантії Ви можете бути впевнені в тому, що здійсненний (runnable) потік з найвищим пріоритетом буде працювати і що всі потоки з тим же пріоритетом отримають деяку частку процесорного часу Функціонування потоків з […]

Стандартні типи потоків

Як видно з рис 111, в пакеті javaio визначаються кілька типів потоків Зазвичай вони складають пари введення / виводу: Конвеєрні потоки Piped спроектовані для парного використання, при якому байти, що записуються в PipedOutputStream, можуть читатися з PipedInputStream

Безпека потоків і ThreadGroup

При програмуванні роботи декількох потоків (частина яких створюється бібліотечними викликами) буває корисно частково обмежити їх можливості, щоб потоки не заважали один одному Потоки діляться на групи потоків в цілях безпеки Група потоків може входити до складу іншої групи, що дозволяє створювати певну ієрархію Потоки всередині групи можуть змінювати інші потоки, що входять в ту ж […]

Робота з потоками в CBuilder

Коли я вимовляю слово thread (потік дослівно: нитка), про що ви думаете1 Про невеликих білих шматочках бавовни на вашому діловому костюмі Про мотках для вязання з уткнутими спицями У компютерній індустрії, однак, слово thread означає щось зовсім інше

Клас Runtime

Обєкти класу Runtime описують стан runtime-системи Java і ті операції, які вона може виконати Для отримання обєкта Runtime, що відповідає поточному runtime-контексту, слід викликати статичний метод RuntimegetRuntime Одна з операцій, виконуваних поточним runtime-контекстом, – отримання вхідного або вихідного потоку, що перекладає символи локального набору в їх Unicode-еквіваленти Багато існуючі системи працюють з національними алфавітами, що […]

Дизайн додатки з потоками в CBuilder

Найскладніша частина роботи з потоками – визначення того, чи дійсно вони потрібні у вашому додатку Немає жодних чітких правил, коли їх варто використовувати, але деякі програми за самою своєю суті добре підходять під потоковий дизайн Перший випадок, коли варто використовувати потоки, – фонова обробка Перевірка послідовних чи паралельних портів, відстеження файлової активності, робота з журналом […]

Черги відкладених дій

(work queue) – це ще один спосіб реалізації відкладених операцій, який відрізняється від розглянутих раніше Черги дій дозволяють відкладати деякі операції для подальшого виконання потоком простору ядра – відкладені дії завжди виконуються в контексті процесу Тому код, виконання якого відкладено за допомогою постановки в чергу відкладених дій, отримує всі переваги, якими володіє код, що виконується […]

Фільтруючі потоки

додають кілька нових конструкторів до базових конструкторам класів InputStream і OutputStream Їм передається потік відповідного типу (вхідний або вихідний), з яким необхідно зєднати обєкт дозволяють обєднувати потоки в ланцюжка і тим самим створювати складовою потік з великими можливостями Наведена програма друкує номер рядка файлу, в якій буде виявлено перше входження заданого символу:

Методи wait і notify

Механізм блокування вирішує проблему з накладенням потоків, однак хотілося б, щоб потоки могли обмінюватися інформацією один з одним Для цього існує два методи: wait і notify Метод wait дозволяє потоку дочекатися виконання певної умови, а метод notify сповіщає всі очікують потоки про настання деякої події