Эта статья делится с вами конкретными методами реализации запускаемого метода многопоточного лечения Java для вашей ссылки. Конкретный контент заключается в следующем
(I) шаги
1. Определите и реализуйте выполняемый интерфейс
2. Перезаписывайте метод запуска в запускаемом интерфейсе и сохраните код, который поток хочет запустить в методе запуска.
3. Создайте объекты потока через класс потока.
4. Передайте объект подкласса запускаемого интерфейса в качестве фактических параметров конструктору класса потока.
Почему мы говорим о конструкторе объекта подкласса, проходящего подклассу, передаваемого в потоку? Потому что объект, к которому принадлежит пользовательский метод, является подклассом объекта запускаемого интерфейса.
5. Вызовите метод запуска класса потока, чтобы запустить поток и вызовите метод запуска подкласса «Запустить интерфейс».
(Ii) Задача общего блока кода-защищенного потока
Цель: есть ли проблемы безопасности с программой? Если так, как это решить?
Как найти вопрос:
1. Определите, какие коды являются многопоточным запущенным кодом.
2. четко обмениваться данными
3. Уточните, какие операторы в многопоточном коде работают для обмена данными.
Class Bank {private int sum; public void add (int n) {sum+= n; System.out.println ("sum ="+sum); }} class cus реализует runnable {private bank b = new Bank (); public void run () {синхронизированный (b) {for (int x = 0; x <3; x ++) {b.add (100); }}}} открытый класс BankDemo {public static void main (string [] args) {cus c = new cus (); Потока T1 = новый поток (C); Потока T2 = новый поток (C); t1.start (); t2.start (); }} Или во втором пути, поместите код синхронизации, синхронизированный в методе модификации.
Class Bank {private int sum; public Synchrinized void add (int n) {Object obj = new Object (); sum+= n; try {thread.sleep (10); } catch (Exception e) {e.printstackTrace (); } System.out.println ("sum ="+sum); }} class cus реализует runnable {private bank b = new Bank (); public void run () {for (int x = 0; x <3; x ++) {b.add (100); }}} открытый класс BankDemo {public static void main (string [] args) {cus c = new cus (); Потока T1 = новый поток (C); Потока T2 = новый поток (C); t1.start (); t2.start (); }} Суммировать:
1. Определите проблему и метод для решения в классе.
2. Перепишите метод запуска в классе, который реализует выполнение, чтобы вызвать метод для решения проблемы в уже определенном классе.
Примите объект класса для решения проблемы в синхронизированном блоке.
3. Определите несколько потоков для выполнения в основном методе.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.