//Behold, the time is coming, yes, and has now come, that you will be scattered, //everyone to his own place, and you will leave me alone. Yet I am not alone, because the Father is with me. (John 16:32) package com.javarush.task.task17.task1709; /* ÐÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ */ public class Solution { public volatile static int proposal = 0; public static void main(String[] args) { new AcceptProposal().start(); new MakeProposal().start(); } public static class MakeProposal extends Thread { @Override public void run() { int thisProposal = proposal; while (proposal < 10) { System.out.println("Сделано пÑедложение â" + (thisProposal + 1)); proposal = ++thisProposal; try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } } public static class AcceptProposal extends Thread { @Override public void run() { int thisProposal = proposal; while (thisProposal < 10) { if (thisProposal != proposal) { System.out.println("ÐÑинÑÑо пÑедложение â" + proposal); thisProposal = proposal; } } } } } /* ÐÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ðе иÑполÑзÑÑ synchronized Ñделай Ñак, ÑÑÐ¾Ð±Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑво ÑделаннÑÑ Ð¸ пÑинÑÑÑÑ Ð¿Ñедложений бÑло одинаковÑм. ТÑебованиÑ: 1.âÐлаÑÑ Solution должен ÑодеÑжаÑÑ Ð½Ð¸ÑÑ MakeProposal. 2.âÐлаÑÑ Solution должен ÑодеÑжаÑÑ Ð½Ð¸ÑÑ AcceptProposal. 3.âÐлаÑÑ Solution должен ÑодеÑжаÑÑ Ð¿ÑблиÑнÑÑ ÑÑаÑиÑеÑкÑÑ Ð¿ÐµÑеменнÑÑ int proposal. 4.âÐÑогÑамма не должна ÑодеÑжаÑÑ synchronized меÑодов или synchronized блоков. 5.âÐеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ int proposal не должна Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² локалÑном кÑÑе. package com.javarush.task.task17.task1709; * ÐÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ * public class Solution { public static int proposal = 0; public static void main(String[] args) { new AcceptProposal().start(); new MakeProposal().start(); } public static class MakeProposal extends Thread { @Override public void run() { int thisProposal = proposal; while (proposal < 10) { System.out.println("Сделано пÑедложение â" + (thisProposal + 1)); proposal = ++thisProposal; try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } } public static class AcceptProposal extends Thread { @Override public void run() { int thisProposal = proposal; while (thisProposal < 10) { if (thisProposal != proposal) { System.out.println("ÐÑинÑÑо пÑедложение â" + proposal); thisProposal = proposal; } } } } } */