CodeGym/Java Blog/рдпрд╛рджреГрдЪреНрдЫрд┐рдХ/рдереНрд░реЗрдбреНрд╕рдЪреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди. рдЕрд╕реНрдерд┐рд░ рдХреАрд╡рд░реНрдб рдЖрдгрд┐ yield() рдкрджреНрдзрдд
John Squirrels
рдкрд╛рддрд│реА 41
San Francisco

рдереНрд░реЗрдбреНрд╕рдЪреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди. рдЕрд╕реНрдерд┐рд░ рдХреАрд╡рд░реНрдб рдЖрдгрд┐ yield() рдкрджреНрдзрдд

рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдпрд╛ рдЧреНрд░реБрдкрдордзреНрдпреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗ
рд╕рджрд╕реНрдп
рд╣рд╛рдп! рдЖрдореНрд╣реА рдЖрдордЪрд╛ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧрдЪрд╛ рдЕрднреНрдпрд╛рд╕ рд╕реБрд░реВ рдареЗрд╡рддреЛ. volatileрдЖрдЬ рдЖрдкрдг рдХреАрд╡рд░реНрдб рдЖрдгрд┐ рдкрджреНрдзрдд рдЬрд╛рдгреВрди рдШреЗрдгрд╛рд░ рдЖрд╣реЛрдд yield(). рдЪрд▓рд╛ рдЖрдд рдЬрд╛рдКрдпрд╛ :)

рдЕрд╕реНрдерд┐рд░ рдХреАрд╡рд░реНрдб

рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рддрдпрд╛рд░ рдХрд░рддрд╛рдирд╛, рдЖрдореНрд╣реА рджреЛрди рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛рдВрдирд╛ рд╕рд╛рдореЛрд░реЗ рдЬрд╛рдК рд╢рдХрддреЛ. рдкреНрд░рдердо, рдЬреЗрд╡реНрд╣рд╛ рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд╛рд▓реВ рдЕрд╕рддреЗ, рддреЗрд╡реНрд╣рд╛ рднрд┐рдиреНрди рдереНрд░реЗрдбреНрд╕ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдЪреА рдореВрд▓реНрдпреЗ рдХреЕрд╢реЗ рдХрд░реВ рд╢рдХрддрд╛рдд (рдЖрдореНрд╣реА рдпрд╛рд╡рд┐рд╖рдпреА рдЖрдзреАрдЪ 'рдЕрд╕реНрдерд┐рд░ рд╡рд╛рдкрд░рдгреЗ' рд╢реАрд░реНрд╖рдХрд╛рдЪреНрдпрд╛ рдзрдбреНрдпрд╛рдд рдмреЛрд▓рд▓реЛ рдЖрд╣реЛрдд ). рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЕрд╢реА рдкрд░рд┐рд╕реНрдерд┐рддреА рдЕрд╕реВ рд╢рдХрддреЗ рдЬрд┐рдереЗ рдПрдХ рдереНрд░реЗрдб рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдЪреЗ рдореВрд▓реНрдп рдмрджрд▓рддреЛ, рдкрд░рдВрддреБ рджреБрд╕рд░реНтАНрдпрд╛ рдереНрд░реЗрдбрдордзреНрдпреЗ рдмрджрд▓ рджрд┐рд╕рдд рдирд╛рд╣реА, рдХрд╛рд░рдг рддреЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдЪреНрдпрд╛ рдХреЕрд╢реЗрдб рдХреЙрдкреАрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдд рдЖрд╣реЗ. рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХрдЪ, рддреНрдпрд╛рдЪреЗ рдкрд░рд┐рдгрд╛рдо рдЧрдВрднреАрд░ рдЕрд╕реВ рд╢рдХрддрд╛рдд. рд╕рдордЬрд╛ рдХреА рд╣реЗ рдлрдХреНрдд рдЬреБрдиреЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдирд╛рд╣реА рддрд░ рддреБрдордЪреНрдпрд╛ рдмрдБрдХ рдЦрд╛рддреНрдпрд╛рддреАрд▓ рд╢рд┐рд▓реНрд▓рдХ рдЖрд╣реЗ, рдЬреЗ рдЕрдЪрд╛рдирдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХрдкрдгреЗ рд╡рд░ рдЖрдгрд┐ рдЦрд╛рд▓реА рдЙрдбреА рдорд╛рд░рд╛рдпрд▓рд╛ рд▓рд╛рдЧрддреЗ :) рддреЗ рдордЬреЗрджрд╛рд░ рд╡рд╛рдЯрдд рдирд╛рд╣реА, рдмрд░реЛрдмрд░? рджреБрд╕рд░реЗ, Java рдордзреНрдпреЗ, рд╕рд░реНрд╡ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ рд╡рд╛рдЪрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдСрдкрд░реЗрд╢рдиреНрд╕,longdouble, рдЕрдгреВ рдЖрд╣реЗрдд. рдареАрдХ рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬрд░ рддреБрдореНрд╣реА intрдПрдХрд╛ рдереНрд░реЗрдбрд╡рд░ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдЪреЗ рдореВрд▓реНрдп рдмрджрд▓рд▓реЗ рдЖрдгрд┐ рджреБрд╕рд░реНтАНрдпрд╛ рдереНрд░реЗрдбрд╡рд░ рддреБрдореНрд╣реА рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдЪреЗ рдореВрд▓реНрдп рд╡рд╛рдЪрд▓реЗ, рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХрддрд░ рддреНрдпрд╛рдЪреЗ рдЬреБрдиреЗ рдореВрд▓реНрдп рдорд┐рд│реЗрд▓ рдХрд┐рдВрд╡рд╛ рдирд╡реАрди, рдореНрд╣рдгрдЬреЗ рдмрджрд▓рд╛рдореБрд│реЗ рдорд┐рд│рд╛рд▓реЗрд▓реЗ рдореВрд▓реНрдп. рдереНрд░реЗрдб 1 рдордзреНрдпреЗ. рдХреЛрдгрддреАрд╣реА 'рдордзреНрдпрд╡рд░реНрддреА рдореВрд▓реНрдпреЗ' рдирд╛рд╣реАрдд. longрддрдерд╛рдкрд┐, рд╣реЗ s рдЖрдгрд┐ s рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реА double. рдХрд╛? рдХреНрд░реЙрд╕-рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рд╕рдорд░реНрдердирд╛рдореБрд│реЗ. рд╕реБрд░реБрд╡рд╛рддреАрдЪреНрдпрд╛ рд╕реНрддрд░рд╛рдВрд╡рд░ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рдЖрдореНрд╣реА рд╕рд╛рдВрдЧрд┐рддрд▓реЗ рдХреА Java рдЪреЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рддрддреНрд╡ 'рдПрдХрджрд╛ рд▓рд┐рд╣рд╛, рдХреБрдареЗрд╣реА рдЪрд╛рд▓рд╡рд╛' рдЖрд╣реЗ? рдореНрд╣рдгрдЬреЗ рдХреНрд░реЙрд╕-рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рд╕рдкреЛрд░реНрдЯ. рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, Java рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдЪрд╛рд▓рддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, Windows рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдорд╡рд░, Linux рдХрд┐рдВрд╡рд╛ MacOS рдЪреНрдпрд╛ рднрд┐рдиреНрди рдЖрд╡реГрддреНрддреНрдпрд╛. рдпрд╛ рд╕рд░реНрд╡рд╛рдВрд╡рд░ рдХреЛрдгрддреАрд╣реА рдЕрдбрдЪрдг рди рдпреЗрддрд╛ рдЪрд╛рд▓реЗрд▓. 64 рдмрд┐рдЯреНрд╕рдордзреНрдпреЗ рд╡рдЬрди,longdoubleJava рдордзреАрд▓ 'рд╕рд░реНрд╡рд╛рдд рднрд╛рд░реА' рдЖрджрд┐рдо рдЖрд╣реЗрдд. рдЖрдгрд┐ рдХрд╛рд╣реА 32-рдмрд┐рдЯ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдХреЗрд╡рд│ 64-рдмрд┐рдЯ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдЪреЗ рдЕрдгреВ рд╡рд╛рдЪрди рдЖрдгрд┐ рд▓реЗрдЦрди рд▓рд╛рдЧреВ рдХрд░рдд рдирд╛рд╣реАрдд. рдЕрд╢реА рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рджреЛрди рдСрдкрд░реЗрд╢рдиреНрд╕рдордзреНрдпреЗ рд╡рд╛рдЪрд▓реА рдЖрдгрд┐ рд▓рд┐рд╣рд┐рд▓реА рдЬрд╛рддрд╛рдд. рдкреНрд░рдердо, рдкрд╣рд┐рд▓реЗ 32 рдмрд┐рдЯ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдЖрд╣реЗрдд, рдЖрдгрд┐ рдирдВрддрд░ рдЖрдгрдЦреА 32 рдмрд┐рдЯреНрд╕ рд▓рд┐рд╣рд┐рд▓реЗ рдЖрд╣реЗрдд. рдкрд░рд┐рдгрд╛рдореА, рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡реВ рд╢рдХрддреЗ. рдПрдХ рдереНрд░реЗрдб рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рд╡рд░ рдХрд╛рд╣реА 64-рдмрд┐рдЯ рдореВрд▓реНрдп рд▓рд┐рд╣рд┐рддреЛ XрдЖрдгрд┐ рджреЛрди рдСрдкрд░реЗрд╢рдиреНрд╕рдордзреНрдпреЗ рдЕрд╕реЗ рдХрд░рддреЛ. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рджреБрд╕рд░рд╛ рдереНрд░реЗрдб рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдЪреЗ рдореВрд▓реНрдп рд╡рд╛рдЪрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЛ рдЖрдгрд┐ рддреНрдпрд╛ рджреЛрди рдСрдкрд░реЗрд╢рдиреНрд╕рдордзреНрдпреЗ рдЕрд╕реЗ рдХрд░рддреЛ - рдЬреЗрд╡реНрд╣рд╛ рдкрд╣рд┐рд▓реЗ 32 рдмрд┐рдЯ рд▓рд┐рд╣рд┐рд▓реЗ рдЧреЗрд▓реЗ рд╣реЛрддреЗ, рдкрд░рдВрддреБ рджреБрд╕рд▒реНрдпрд╛ 32 рдмрд┐рдЯреНрд╕рдордзреНрдпреЗ рдирд╛рд╣реА. рдкрд░рд┐рдгрд╛рдореА, рддреЗ рдордзреНрдпрд╡рд░реНрддреА, рдЪреБрдХреАрдЪреЗ рдореВрд▓реНрдп рд╡рд╛рдЪрддреЗ рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рдмрдЧ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬрд░ рдЕрд╢рд╛ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдЖрдореНрд╣реА 9223372036854775809 рд╡рд░ рдирдВрдмрд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЛ. рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдордзреНрдпреЗ, рддреЗ 64 рдмрд┐рдЯ рд╡реНрдпрд╛рдкреЗрд▓. рдмрд╛рдпрдирд░реА рд╕реНрд╡рд░реВрдкрд╛рдд, рд╣реЗ рдЕрд╕реЗ рджрд┐рд╕рддреЗ: 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 рдкрд╣рд┐рд▓рд╛ рдереНрд░реЗрдб рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдордзреНрдпреЗ рд╕рдВрдЦреНрдпрд╛ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддреЛ. рдкреНрд░рдердо, рддреЗ рдкрд╣рд┐рд▓реЗ 32 рдмрд┐рдЯреНрд╕ (100000000000000000000000000000000000000000) рдЖрдгрд┐ рдирдВрддрд░ рджреБрд╕рд░реЗ 32 рдмрд┐рдЯреНрд╕ (00000000000000000000000000001) рд▓рд┐рд╣рд┐рддрд╛рдд. рдЖрдгрд┐ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдЪреЗ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд╡реНрд╣реЕрд▓реНрдпреВ (10000000000000000000000000000000000) рд╡рд╛рдЪреВрди рджреБрд╕рд░рд╛ рдереНрд░реЗрдб рдпрд╛ рдСрдкрд░реЗрд╢рдиреНрд╕рдордзреНрдпреЗ рдЬреЛрдбрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ, рдЬреЗ рдЖрдзреАрдкрд╛рд╕реВрди рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдкрд╣рд┐рд▓реЗ 32 рдмрд┐рдЯ рдЖрд╣реЗрдд. рджрд╢рд╛рдВрд╢ рдкреНрд░рдгрд╛рд▓реАрдордзреНрдпреЗ, рд╣реА рд╕рдВрдЦреНрдпрд╛ 2,147,483,648 рдЖрд╣реЗ. рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рдЖрдореНрд╣рд╛рд▓рд╛ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдордзреНрдпреЗ рдлрдХреНрдд 9223372036854775809 рд╣рд╛ рдХреНрд░рдорд╛рдВрдХ рд▓рд┐рд╣рд╛рдпрдЪрд╛ рд╣реЛрддрд╛, рдкрд░рдВрддреБ рд╣реЗ рдСрдкрд░реЗрд╢рди рдХрд╛рд╣реА рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдЕрдгреВ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рджреБрд╖реНрдЯ рдХреНрд░рдорд╛рдВрдХ 2,147,483,648 рдЖрд╣реЗ, рдЬреЛ рдХреЛрдареВрдирд╣реА рдмрд╛рд╣реЗрд░ рдЖрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдЪрд╛ рдЕрдЬреНрдЮрд╛рдд рдкрд░рд┐рдгрд╛рдо рд╣реЛрдИрд▓. рдХрд╛рд░реНрдпрдХреНрд░рдо рджреБрд╕рд░рд╛ рдереНрд░реЗрдб рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЖрдзреА рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдЪреЗ рдореВрд▓реНрдп рд╡рд╛рдЪрддреЛ, рдореНрд╣рдгрдЬреЗ рдереНрд░реЗрдбрдиреЗ рдкрд╣рд┐рд▓реЗ 32 рдмрд┐рдЯ рдкрд╛рд╣рд┐рд▓реЗ, рдкрд░рдВрддреБ рджреБрд╕рд░реЗ 32 рдмрд┐рдЯ рдкрд╛рд╣рд┐рд▓реЗ рдирд╛рд╣реАрдд. рдЕрд░реНрдерд╛рдд, рдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛рд▓ рдирд┐рд░реНрдорд╛рдг рдЭрд╛рд▓реНрдпрд╛ рдирд╛рд╣реАрдд. Java рддреНрдпрд╛рдВрдирд╛ рдПрдХрд╛рдЪ рдХреАрд╡рд░реНрдбрд╕рд╣ рд╕реЛрдбрд╡рддреЗ: volatile. рдЖрдореНрд╣реА рд╡рд╛рдкрд░рд▓реНрдпрд╛рд╕volatileрдЖрдордЪреНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдордордзреНрдпреЗ рдХрд╛рд╣реА рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛рдирд╛ рдХреАрд╡рд░реНрдбтАж
public class Main {

   public volatile long x = 2222222222222222222L;

   public static void main(String[] args) {

   }
}
... рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА:
  1. рддреЗ рдиреЗрд╣рдореА рдЕрдгреБрд░реАрддреНрдпрд╛ рд╡рд╛рдЪрд▓реЗ рдЖрдгрд┐ рд▓рд┐рд╣рд┐рд▓реЗ рдЬрд╛рдИрд▓. рдЬрд░реА рддреЗ 64-рдмрд┐рдЯ doubleрдХрд┐рдВрд╡рд╛ long.
  2. Java рдорд╢реАрди рддреЗ рдХреЕрд╢реЗ рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. рддреНрдпрд╛рдореБрд│реЗ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЕрд╢реА рдкрд░рд┐рд╕реНрдерд┐рддреА рдирд╕реЗрд▓ рдЬрд┐рдереЗ 10 рдереНрд░реЗрдб рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╕реНрдерд╛рдирд┐рдХ рдкреНрд░рддреАрдВрд╕рд╣ рдХрд╛рдо рдХрд░рдд рдЕрд╕рддреАрд▓.
рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рджреЛрди рдЕрддрд┐рд╢рдп рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рдлрдХреНрдд рдПрдХрд╛ рд╢рдмреНрджрд╛рдиреЗ рд╕реЛрдбрд╡рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд :)

рдЙрддреНрдкрдиреНрди() рдкрджреНрдзрдд

рдЖрдореНрд╣реА Threadрд╡рд░реНрдЧрд╛рдЪреНрдпрд╛ рдЕрдиреЗрдХ рдкрджреНрдзрддреАрдВрдЪреЗ рдЖрдзреАрдЪ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдХреЗрд▓реЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдПрдХ рдорд╣рддреНрддреНрд╡рд╛рдЪреА рдЖрд╣реЗ рдЬреА рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рдирд╡реАрди рдЕрд╕реЗрд▓. рддреА yield()рдкрджреНрдзрдд рдЖрд╣реЗ . рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛ рдирд╛рд╡рд╛рдЪрд╛ рдЕрд░реНрде рдиреЗрдордХрд╛ рддреЗрдЪ рдХрд░рддреЛ! рдереНрд░реЗрдбреНрд╕рдЪреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди.  рдЕрд╕реНрдерд┐рд░ рдХреАрд╡рд░реНрдб рдЖрдгрд┐ yield() рдкрджреНрдзрдд - 2рдЬреЗрд╡реНрд╣рд╛ рдЖрдкрдг yieldрдереНрд░реЗрдбрд╡рд░ рдкрджреНрдзрдд рдореНрд╣рдгрддреЛ, рддреЗрд╡реНрд╣рд╛ рддреА рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдЗрддрд░ рдереНрд░реЗрдбреНрд╕рд╢реА рдмреЛрд▓рддреЗ: 'рдЕрд╣реЛ, рдорд┐рддреНрд░рд╛рдВрдиреЛ. рдорд▓рд╛ рдХреБрдареЗрд╣реА рдЬрд╛рдгреНрдпрд╛рдЪреА рдШрд╛рдИ рдирд╛рд╣реА, рдореНрд╣рдгреВрди рдЬрд░ рддреБрдордЪреНрдпрд╛рдкреИрдХреА рдХреЛрдгрд╛рд▓рд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╡реЗрд│ рдорд┐рд│рдгреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЕрд╕реЗрд▓ рддрд░ рддреЗ рдШреНрдпрд╛ - рдореА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реВ рд╢рдХрддреЛ'. рд╣реЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдпрд╛рдЪреЗ рдПрдХ рд╕рд╛рдзреЗ рдЙрджрд╛рд╣рд░рдг рдпреЗрдереЗ рдЖрд╣реЗ:
public class ThreadExample extends Thread {

   public ThreadExample() {
       this.start();
   }

   public void run() {

       System.out.println(Thread.currentThread().getName() + " yields its place to others");
       Thread.yield();
       System.out.println(Thread.currentThread().getName() + " has finished executing.");
   }

   public static void main(String[] args) {
       new ThreadExample();
       new ThreadExample();
       new ThreadExample();
   }
}
рдЖрдореНрд╣реА рдЕрдиреБрдХреНрд░рдореЗ рддреАрди рдереНрд░реЗрдб рддрдпрд╛рд░ рдХрд░рддреЛ рдЖрдгрд┐ рд╕реБрд░реВ рдХрд░рддреЛ: Thread-0, Thread-1, рдЖрдгрд┐ Thread-2. Thread-0рдкреНрд░рдердо рд╕реБрд░реВ рд╣реЛрддреЗ рдЖрдгрд┐ рд▓рдЧреЗрдЪ рдЗрддрд░рд╛рдВрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ. рдирдВрддрд░ Thread-1рд╕реБрд░реВ рд╣реЛрддреЗ рдЖрдгрд┐ рдЙрддреНрдкрдиреНрди рджреЗрдЦреАрд▓ рд╣реЛрддреЗ. рдирдВрддрд░ Thread-2рд╕реБрд░реВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рдЬреЗ рдЙрддреНрдкрдиреНрди рджреЗрдЦреАрд▓ рджреЗрддреЗ. рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЖрдгрдЦреА рдХреЛрдгрддреЗрд╣реА рдзрд╛рдЧреЗ рдирд╛рд╣реАрдд рдЖрдгрд┐ Thread-2рд╢реЗрд╡рдЯрдЪреЗ рд╕реНрдерд╛рди рджрд┐рд▓реНрдпрд╛рдирдВрддрд░, рдереНрд░реЗрдб рд╢реЗрдбреНрдпреБрд▓рд░ рдореНрд╣рдгрддреЛ, 'рд╣рдореНрдо, рдЖрдгрдЦреА рдХреЛрдгрддреЗрд╣реА рдирд╡реАрди рдзрд╛рдЧреЗ рдирд╛рд╣реАрдд. рдЖрдордЪреНрдпрд╛ рд░рд╛рдВрдЧреЗрдд рдХреЛрдг рдЖрд╣реЗ? рдЖрдзреА рддреНрдпрд╛рдЪреЗ рд╕реНрдерд╛рди рдХреЛрдгреА рджрд┐рд▓реЗ Thread-2? рддреЗ рд╣реЛрддреЗ Thread-1. рдареАрдХ рдЖрд╣реЗ, рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЖрдореНрд╣реА рддреЗ рдЪрд╛рд▓реВ рджреЗрдК. Thread-1рддреНрдпрд╛рдЪреЗ рдХрд╛рд░реНрдп рдкреВрд░реНрдг рдХрд░рддреЗ рдЖрдгрд┐ рдирдВрддрд░ рдереНрд░реЗрдб рд╢реЗрдбреНрдпреВрд▓рд░ рддреНрдпрд╛рдЪреЗ рд╕рдордиреНрд╡рдп рдЪрд╛рд▓реВ рдареЗрд╡рддреЛ: 'рдареАрдХ рдЖрд╣реЗ, Thread-1рдкреВрд░реНрдг рдЭрд╛рд▓реЗ. рдЖрдордЪреНрдпрд╛ рд░рд╛рдВрдЧреЗрдд рдЕрдЬреВрди рдХреЛрдгреА рдЖрд╣реЗ рдХрд╛?'. рдереНрд░реЗрдб-0 рд░рд╛рдВрдЧреЗрдд рдЖрд╣реЗ: рддреНрдпрд╛рдиреЗ рдЖрдзреА рддреНрдпрд╛рдЪреЗ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реЗThread-1. рдЖрддрд╛ рддреНрдпрд╛рдЪреА рдкрд╛рд│реА рдпреЗрддреЗ рдЖрдгрд┐ рддреА рдкреВрд░реНрдгрддреНрд╡рд╛рдХрдбреЗ рдзрд╛рд╡рддреЗ. рдордЧ рд╢реЗрдбреНрдпреБрд▓рд░рдиреЗ рдереНрд░реЗрдбреНрд╕рдЪреЗ рд╕рдордиреНрд╡рдпрди рдкреВрд░реНрдг рдХреЗрд▓реЗ: 'рдареАрдХ рдЖрд╣реЗ, Thread-2, рддреБрдореНрд╣реА рдЗрддрд░ рдереНрд░реЗрдбреНрд╕рд╡рд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдареЗрд╡рд▓рд╛рдд рдЖрдгрд┐ рддреЗ рдЖрддрд╛ рдкреВрд░реНрдг рдЭрд╛рд▓реЗ рдЖрд╣реЗрдд. рддреВ рд╢реЗрд╡рдЯрдЪрд╛ рд╣реЛрддрд╛рд╕, рдореНрд╣рдгреВрди рдЖрддрд╛ рддреБрдЭреА рдкрд╛рд│реА рдЖрд╣реЗ. рдордЧ Thread-2рдкреВрд░реНрдгрддреНрд╡рд╛рдХрдбреЗ рдзрд╛рд╡рддреЗ. рдХрдиреНрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдЕрд╕реЗ рджрд┐рд╕реЗрд▓: рдереНрд░реЗрдб-0 рддреНрдпрд╛рдЪреЗ рд╕реНрдерд╛рди рдЗрддрд░рд╛рдВрдирд╛ рджреЗрдИрд▓ рдереНрд░реЗрдб-1 рддреНрдпрд╛рдЪреЗ рд╕реНрдерд╛рди рдЗрддрд░рд╛рдВрдирд╛ рджреЗрдИрд▓ рдереНрд░реЗрдб-2 рддреНрдпрд╛рдЪреЗ рд╕реНрдерд╛рди рдЗрддрд░рд╛рдВрдирд╛ рджреЗрдИрд▓ рдереНрд░реЗрдб-1 рдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреЗ рдкреВрд░реНрдг рдХреЗрд▓реЗ рдЖрд╣реЗ. рдереНрд░реЗрдб-реж рдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреЗ рдкреВрд░реНрдг рдХреЗрд▓реЗ рдЖрд╣реЗ. рдереНрд░реЗрдб-2 рдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреЗ рдкреВрд░реНрдг рдХреЗрд▓реЗ рдЖрд╣реЗ. рдЕрд░реНрдерд╛рдд, рдереНрд░реЗрдб рд╢реЗрдбреНрдпреБрд▓рд░ рд╡реЗрдЧрд│реНрдпрд╛ рдХреНрд░рдорд╛рдиреЗ рдереНрд░реЗрдб рд╕реБрд░реВ рдХрд░реВ рд╢рдХрддреЛ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, 0-1-2 рдРрд╡рдЬреА 2-1-0), рдкрд░рдВрддреБ рддрддреНрддреНрд╡ рд╕рдорд╛рди рд░рд╛рд╣рддреЗ.

рдШрдбрддреЗ-рдирд┐рдпрдорд╛рдВрдкреВрд░реНрд╡реА

рдЖрдЬ рдЖрдкрдг рдЬреНрдпрд╛ рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рдЧреЛрд╖реНрдЯреАрд▓рд╛ рд╕реНрдкрд░реНрд╢ рдХрд░рдгрд╛рд░ рдЖрд╣реЛрдд рддреА рдореНрд╣рдгрдЬреЗ ' рдкреВрд░реНрд╡реА рдШрдбрддреЗ ' рд╣реА рд╕рдВрдХрд▓реНрдкрдирд╛ . рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдзреАрдЪ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ рдХреА, Java рдордзреНрдпреЗ рдереНрд░реЗрдб рд╢реЗрдбреНрдпреБрд▓рд░ рдереНрд░реЗрдбреНрд╕рдирд╛ рддреНрдпрд╛рдВрдЪреА рдХрд╛рд░реНрдпреЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡реЗрд│ рдЖрдгрд┐ рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдЯрдк рдХрд░рдгреНрдпрд╛рдд рдЧреБрдВрддрд▓реЗрд▓реА рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдХрд╛рдореЗ рдХрд░рддреЛ. рдЖрдкрдг рд╡рд╛рд░рдВрд╡рд╛рд░ рд╣реЗ рджреЗрдЦреАрд▓ рдкрд╛рд╣рд┐рд▓реЗ рдЖрд╣реЗ рдХреА рдереНрд░реЗрдбреНрд╕ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреНрд░рдорд╛рдиреЗ рдХрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЬреНрдпрд╛рдЪрд╛ рдЕрдВрджрд╛рдЬ рд▓рд╛рд╡рдгреЗ рд╕рд╣рд╕рд╛ рдЕрд╢рдХреНрдп рдЕрд╕рддреЗ. рдЖрдгрд┐ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдЖрдореНрд╣реА рдкреВрд░реНрд╡реА рдХреЗрд▓реЗрд▓реНрдпрд╛ 'рд╕рд┐рдХреНрд╡реЗрдВрд╢рд┐рдпрд▓' рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрдирдВрддрд░, рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛рд╣реАрддрд░реА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рджрд┐рд╕рддреЗ. рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдордЪрд╛ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рдЕрдиреЗрдХ рдкрджреНрдзрддреА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ рдпрд╛рд╡рд░ рддреБрдордЪрд╛ рдЖрдзреАрдЪ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЖрд╣реЗ. рдкрд░рдВрддреБ рдЬрд╛рд╡рд╛рдордзреАрд▓ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧрдордзреНрдпреЗ рдЖрдгрдЦреА рдПрдХ рд╕реНрддрдВрдн рдЖрд╣реЗ - 4 ' рд╣реЛрддреЗ-рдкреВрд░реНрд╡реА ' рдирд┐рдпрдо. рд╣реЗ рдирд┐рдпрдо рд╕рдордЬреВрди рдШреЗрдгреЗ рдЕрдЧрджреА рд╕реЛрдкреЗ рдЖрд╣реЗ. рдХрд▓реНрдкрдирд╛ рдХрд░рд╛ рдХреА рдЖрдордЪреНрдпрд╛рдХрдбреЗ рджреЛрди рдзрд╛рдЧреЗ рдЖрд╣реЗрдд тАФ AрдЖрдгрд┐B. рдпрд╛рдкреИрдХреА рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рдСрдкрд░реЗрд╢рди рдХрд░реВ рд╢рдХрддреЛ 1рдЖрдгрд┐ 2. рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдорд╛рдд, рдЬреЗрд╡реНрд╣рд╛ рдЖрдкрдг ' A рдШрдбрддреЗ-B рдЪреНрдпрд╛ рдЖрдзреАA ' рдЕрд╕реЗ рдореНрд╣рдгрддреЛ, рддреЗрд╡реНрд╣рд╛ рдЖрдордЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рд╣реЛрддреЛ рдХреА рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рдЖрдзреА рдереНрд░реЗрдбрджреНрд╡рд╛рд░реЗ рдХреЗрд▓реЗрд▓реЗ рд╕рд░реНрд╡ рдмрджрд▓ 1рдЖрдгрд┐ рдпрд╛ рдСрдкрд░реЗрд╢рдирдореБрд│реЗ рд╣реЛрдгрд╛рд░реЗ рдмрджрд▓ BрдСрдкрд░реЗрд╢рди 2рдХреЗрд▓реНрдпрд╛рд╡рд░ рдЖрдгрд┐ рддреНрдпрд╛рдирдВрддрд░ рдереНрд░реЗрдбрдордзреНрдпреЗ рджреГрд╢реНрдпрдорд╛рди рдЕрд╕рддрд╛рдд. рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдо рд╣рдореА рджреЗрддреЛ рдХреА рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рд╣рд┐рддрд╛ рддреЗрд╡реНрд╣рд╛ рдХрд╛рд╣реА рдШрдЯрдирд╛ рдЗрддрд░рд╛рдВрд╕рдореЛрд░ 100% рд╡реЗрд│рд╛ рдШрдбрддреАрд▓ рдЖрдгрд┐ рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рд╡реЗрд│реА 2рдереНрд░реЗрдбрдиреЗ рдСрдкрд░реЗрд╢рди рджрд░рдореНрдпрд╛рди рдХреЗрд▓реЗрд▓реНрдпрд╛ Bрдмрджрд▓рд╛рдВрдЪреА рдиреЗрд╣рдореА рдЬрд╛рдгреАрд╡ рдЕрд╕реЗрд▓ . рдЪрд▓рд╛ рддреНрдпрд╛рдВрдЪреЗ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдХрд░реВрдпрд╛. A1

рдирд┐рдпрдо рез.

рдореНрдпреБрдЯреЗрдХреНрд╕ рд░рд┐рд▓реАрдЭ рдХрд░рдгреЗ рд╕рдорд╛рди рдореЙрдирд┐рдЯрд░ рджреБрд╕рд░реНтАНрдпрд╛ рдереНрд░реЗрдбрджреНрд╡рд╛рд░реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╣реЛрддреЗ . рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рдпреЗрдереЗ рд╕рд░реНрд╡рдХрд╛рд╣реА рд╕рдордЬрд▓реЗ рдЖрд╣реЗ. рдПрдЦрд╛рджреНрдпрд╛ рд╡рд╕реНрддреВрдЪреЗ рдХрд┐рдВрд╡рд╛ рд╡рд░реНрдЧрд╛рдЪреЗ рдореНрдпреБрдЯреЗрдХреНрд╕ рдПрдХрд╛ рдереНрд░реЗрдбрдиреЗ рдорд┐рд│рд╡рд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕., рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдереНрд░реЗрдбрджреНрд╡рд╛рд░реЗ A, рджреБрд╕рд░рд╛ рдереНрд░реЗрдб (рдереНрд░реЗрдб B) рдПрдХрд╛рдЪ рд╡реЗрд│реА рдорд┐рд│рд╡реВ рд╢рдХрдд рдирд╛рд╣реА. рдореНрдпреВрдЯреЗрдХреНрд╕ рд░рд┐рд▓реАрдЭ рд╣реЛрдИрдкрд░реНрдпрдВрдд рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдирд┐рдпрдо 2.

рдкрджреНрдзрдд рдЖрдзреАThread.start() рдШрдбрддреЗ . рдкреБрдиреНрд╣рд╛, рдпреЗрдереЗ рдХрд╛рд╣реАрд╣реА рдХрдареАрдг рдирд╛рд╣реА. рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдзреАрдЪ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ рдХреА рдореЗрдердбрдордзреАрд▓ рдХреЛрдб рдЪрд╛рд▓рд╡рдгреЗ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА , рддреБрдореНрд╣реА рдереНрд░реЗрдбрд╡рд░реАрд▓ рдкрджреНрдзрдд рдХреЙрд▓ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╡рд┐рд╢реЗрд╖рддрдГ, рдкреНрд░рд╛рд░рдВрдн рдкрджреНрдзрдд, рд╕реНрд╡рддрдГрдЪ рдкрджреНрдзрдд рдирд╛рд╣реА! рд╣рд╛ рдирд┐рдпрдо рд╣реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЛ рдХреА рдЖрдзреА рдХреЙрд▓ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдЪреА рд╡реНрд╣реЕрд▓реНрдпреВ рдореЗрдердб рд╕реБрд░реВ рдЭрд╛рд▓реНрдпрд╛рд╡рд░ рджреГрд╢реНрдпрдорд╛рди рд╣реЛрддреАрд▓ . Thread.run()run()start()run()Thread.start()run()

рдирд┐рдпрдо 3.

run()рдкрджреНрдзрддреАрдЪрд╛ рд╢реЗрд╡рдЯ рдкрджреНрдзрддреАрддреВрди рдкрд░рдд рдпреЗрдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╣реЛрддреЛjoin() . рдЪрд▓рд╛ рдЖрдкрд▓реНрдпрд╛ рджреЛрди рдзрд╛рдЧреНрдпрд╛рдВрд╡рд░ рдкрд░рдд рдЬрд╛рдКрдпрд╛: AрдЖрдгрд┐ B. рдЖрдореНрд╣реА рдпрд╛ join()рдкрджреНрдзрддреАрд▓рд╛ рдХреЙрд▓ рдХрд░рддреЛ рдЬреЗрдгреЗрдХрд░реБрди рдереНрд░реЗрдбрдиреЗ рддреНрдпрд╛рдЪреЗ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА BрдереНрд░реЗрдб рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдгреНрдпрд╛рдЪреА рд╣рдореА рджрд┐рд▓реА рдЬрд╛рддреЗ . Aрдпрд╛рдЪрд╛ рдЕрд░реНрде рдП рдСрдмреНрдЬреЗрдХреНрдЯрдЪреА run()рдкрджреНрдзрдд рдЕрдЧрджреА рд╢реЗрд╡рдЯрдкрд░реНрдпрдВрдд рдЪрд╛рд▓рдгреНрдпрд╛рдЪреА рд╣рдореА рдЖрд╣реЗ. run()рдЖрдгрд┐ рдереНрд░реЗрдбрдЪреНрдпрд╛ рдкрджреНрдзрддреАрдордзреНрдпреЗ рд╣реЛрдгрд╛рд░реЗ рд╕рд░реНрд╡ рдмрджрд▓ AрдереНрд░реЗрдбрдордзреНрдпреЗ рджреГрд╢реНрдпрдорд╛рди рд╣реЛрдгреНрдпрд╛рдЪреА рд╢рдВрднрд░ рдЯрдХреНрдХреЗ рд╣рдореА рдЖрд╣реЗ BрдПрдХрджрд╛ рдереНрд░реЗрдбрдЪреЗ рдХрд╛рдо рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдд рдЖрд╣реЗ AрдЬреЗрдгреЗрдХрд░реВрди рддреЗ рд╕реНрд╡рддрдГрдЪреЗ рдХрд╛рд░реНрдп рд╕реБрд░реВ рдХрд░реВ рд╢рдХреЗрд▓.

рдирд┐рдпрдо 4.

рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рд╡рд░ рд▓рд┐рд╣рд┐рдгреЗ volatileрддреНрдпрд╛рдЪ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдордзреВрди рд╡рд╛рдЪрдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╣реЛрддреЗ . рдЬреЗрд╡реНрд╣рд╛ рдЖрдкрдг рдХреАрд╡рд░реНрдб рд╡рд╛рдкрд░рддреЛ volatile, рддреЗрд╡реНрд╣рд╛ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдиреЗрд╣рдореАрдЪ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдорд┐рд│рддреЗ. рдЕрдЧрджреА a longрдХрд┐рдВрд╡рд╛ рд╕рд╣ double(рдЖрдореНрд╣реА рдпреЗрдереЗ рд╣реЛрдК рд╢рдХрдгрд╛рд░реНтАНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдмрджреНрджрд▓ рдЖрдзреА рдмреЛрд▓рд▓реЛ рд╣реЛрддреЛ). рддреБрдореНрд╣реА рдЖрдзреАрдЪ рд╕рдордЬреВрди рдШреЗрддрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдХрд╛рд╣реА рдереНрд░реЗрдбрд╡рд░ рдХреЗрд▓реЗрд▓реЗ рдмрджрд▓ рдЗрддрд░ рдереНрд░реЗрдбреНрд╕рдирд╛ рдиреЗрд╣рдореА рджрд┐рд╕рдд рдирд╛рд╣реАрдд. рдкрд░рдВрддреБ, рдЕрд░реНрдерд╛рддрдЪ, рдЕрд╢рд╛ рдмрд░реНтАНрдпрд╛рдЪ рд╡реЗрд│рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреА рдЕрд╕рддрд╛рдд рдЬрд┐рдереЗ рдЕрд╕реЗ рд╡рд░реНрддрди рдЖрдкрд▓реНрдпрд╛рд╕ рдЕрдиреБрдХреВрд▓ рдирд╕рддреЗ. рд╕рдордЬрд╛ рдЖрдкрдг рдереНрд░реЗрдбрд╡рд░реАрд▓ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рд▓рд╛ рд╡реНрд╣реЕрд▓реНрдпреВ рдирд┐рдпреБрдХреНрдд рдХрд░рддреЛ A:
int z;

тАж.

z = 555;
рдЬрд░ рдЖрдордЪреНрдпрд╛ рдереНрд░реЗрдбрдиреЗ рдХрдиреНрд╕реЛрд▓рд╡рд░ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдЪреЗ BрдореВрд▓реНрдп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓реЗ рдЕрд╕реЗрд▓ , рддрд░ рддреЗ рд╕рд╣рдЬрдкрдгреЗ 0 рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реВ рд╢рдХрддреЗ, рдХрд╛рд░рдг рддреНрдпрд╛рд╕ рдирд┐рдпреБрдХреНрдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдореВрд▓реНрдпрд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдирд╕рддреЗ. zрдкрд░рдВрддреБ рдирд┐рдпрдо 4 рд╣рдореА рджреЗрддреЛ рдХреА рдЬрд░ рдЖрдкрдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ zрдореНрд╣рдгреВрди рдШреЛрд╖рд┐рдд рдХреЗрд▓реЗ volatile, рддрд░ рдПрдХрд╛ рдереНрд░реЗрдбрд╡рд░реАрд▓ рддреНрдпрд╛рдЪреНрдпрд╛ рдореВрд▓реНрдпрд╛рддреАрд▓ рдмрджрд▓ рджреБрд╕рд░реНтАНрдпрд╛ рдереНрд░реЗрдбрд╡рд░ рдиреЗрд╣рдореА рджреГрд╢реНрдпрдорд╛рди рдЕрд╕рддреАрд▓. volatileрдЬрд░ рдЖрдкрдг рдорд╛рдЧреАрд▓ рдХреЛрдбрдордзреНрдпреЗ рд╢рдмреНрдж рдЬреЛрдбрд▓рд╛ рддрд░ ...
volatile int z;

тАж.

z = 555;
...рддрд░ рдЖрдореНрд╣реА рдереНрд░реЗрдб 0 рджрд░реНрд╢рд╡реВ рд╢рдХрддреЛ рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрд▓рд╛ рдкреНрд░рддрд┐рдмрдВрдз рдХрд░рддреЛ. рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рд╡рд░ Bрд▓рд┐рд╣рд┐рдгреЗ volatileрддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреВрди рд╡рд╛рдЪрдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╣реЛрддреЗ.
рдЯрд┐рдкреНрдкрдгреНрдпрд╛
  • рд▓реЛрдХрдкреНрд░рд┐рдп
  • рдирд╡реАрди
  • рдЬреБрдиреЗ
рдЯрд┐рдкреНрдкрдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рд╕рд╛рдИрди рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
рдпрд╛ рдкрд╛рдирд╛рд╡рд░ рдЕрдЬреВрди рдХреЛрдгрддреНрдпрд╛рд╣реА рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рдирд╛рд╣реАрдд