|
Платные хостинги
Раскрутка сайта
Книги по программированию
Потоки, Решение по приостановке потока
- В старой Java у класса Thread был такой замечательный метод как suspend() / resume(). Из соображений безопасности метод упразнили. Теперь стоит задача: разработать механизм, который приостановит поток в том месте где это возможно (безопасно или назовите как хотите) но с подачи другого (основного) потока. Тоесть, я хочу приостановить поток там где хочу, а не там где у него написано while(suspended == true) { wait() }
- Что именно хочешь добиться?
- Хочу, чтобы выполнение потока (Thread) можно было приостановить (suspend) из другого потока. Плюс к этому, поток который надо приостановить должен приостанавливаться не где нипопадя, а заканчивая какую-либо внутреннюю микрооперацию (например итерацию цикла).
- Эта... А много в потоке вообще таких операций? то есть много ли мест, в которых можно его приостановить?
- Ну, скажем от 2 до 3. Я, впринцыпе, решил проблему таким путём:public class SomeClass extends Thread {}
- Sorry, Ну, скажем от 2 до 3. Я, впринцыпе, решил проблему таким путём:public class SomeClass extends Thread { boolean suspended; public void suspendMe() { suspended = true; } public synchronized void wakeUpMe() { suspended = false; notify(); } public void myWait() { try { synchronized(this) { while(suspended) { wait(); } } catch (....) { } } } public void run() { .................................... myWait(); ................................. for (...........) { myWait(); ................................ } ...........and so on .................. }}Просто это какое-то горбатое решение. Если есть другие варианты напишите
- По сути только так... Если хочешь чтобы какие то части процесса нельзя было остановить...При суспенд - он тоже останавливал в любой точке....
Интернет казино
Онлайн игры
Увеличение члена
Купить DVD
|