Qt рдкрд░ рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ

рдЕрдм рдореИрдВ рдХреНрдпреВрдЯреА рдХреЗ рддрд╣рдд рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВред рдФрд░ рдореБрдЭреЗ рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рдХрд╛рдо рдорд┐рд▓рд╛, рдФрд░ рдХреНрдпрд╛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рддред рдореИрдВ рд╕рд╛рдЗрдХрд┐рд▓ рд╕реЗ рдмрд╛рдбрд╝ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдореИрдВ рддреИрдпрд╛рд░ рдХреНрдпреВрдЯреА рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рдХреЛ рдЬрдиреНрдо рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рддрд╛рдХрд┐ рдпрд╣ рддреБрд░рдВрдд рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реЛред рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рд╣реИ - рдирд╛рдо рдореНрдпреВрдЯреЗрдХреНрд╕ (рдпрд╛ рд╕реЗрдорд╛рдлреЛрд░рд╕, рдпрд╣ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рдореБрдЦреНрдп рдмрд╛рдд рдирд╛рдо рд╣реИ)ред рд╡рд╣ рдЧреВрдЧрд▓ рдХрд░рдиреЗ рд▓рдЧрд╛ред рд╣рд╛рдБ, QSystemSemaphore рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рд╣реА рд╣реИ рдЬрд┐рд╕реЗ QSystemSemaphore рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

- QSystemSemaphore рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВ, рдпрд╣ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ (рд╕рд┐рд╕реНрдЯрдо) рд╕реЗрдорд╛рдлреЛрд░ рдмрдирд╛рддрд╛ рд╣реИ
- рдХреЙрд▓ acquire рдХрд░реЗрдВ, рдПрдХ рд╕реЗ рд╕реЗрдореАрдлреЛрд░ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдХрдо рдХрд░реЗрдВ
- рдХреБрдЫ рдХрд░реЛ
- рдХреЙрд▓ release , рдПрдХ рд╕реЗ рд╕реЗрдореАрдлреЛрд░ рдХрд╛рдЙрдВрдЯрд░ рдмрдврд╝рд╛рдПрдБ

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╢рд╛рд╕реНрддреНрд░реАрдп рд╕реЗрдорд╛рдлреЛрд░, рдХреЗрд╡рд▓ рд╡реИрд╢реНрд╡рд┐рдХред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк 1 рдХреЗ рдмрд░рд╛рдмрд░ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрдорд╛рдлреЛрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ acquire рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЬрдм рддрдХ рд╣рдо release рдирд╣реАрдВ рдмреБрд▓рд╛рддреЗ рд╣реИрдВ рддрдм рддрдХ рдХреЛрдИ рдФрд░ рдЗрд╕ рд╕реЗрдорд╛рдлреЛрд░ рдкрд░ рдХрдмреНрдЬрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣реБрд░реНрд░реЗ, рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛! рдПрдХрд▓-рдЙрджрд╛рд╣рд░рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдирд┐рдореНрди рдХреЛрдб рддреБрд░рдВрдд рдирд┐рдХрд▓рддрд╛ рд╣реИ:

- рдПрдХ рд╕реЗрдорд╛рдлреЛрд░ рдмрдирд╛рдПрдВ
- рд╣рдбрд╝рдкрдирд╛
- рдЖрд╡реЗрджрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
- рд╢рдЯ рдбрд╛рдЙрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗрдореАрдлреЛрд░ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ

рд╕рдм рдХреБрдЫ рдмрдврд╝рд┐рдпрд╛ рд╣реИ, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред рдкреНрд░рд▓реЗрдЦрди рд╣рдорд╕реЗ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рднрд▓реЗ рд╣реА рдЖрдк release рдХреЙрд▓ рди рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛), рд╕рд┐рд╕реНрдЯрдо рдЕрднреА рднреА рд╕рднреА рдпреВрдирд┐рдЯреЛрдВ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд┐рдП рдЧрдП рд╕реЗрдореАрдлрд╝рд╛рдпрд░ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛? acquire рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдЕрд╡рд░реБрджреНрдз рд╣реИ рдФрд░ рдЬрдм рддрдХ рд╕реЗрдорд╛рдлрд╝реЛрд░ рдХреЛ рдореБрдХреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рддрдХ рдЖрд╡реЗрджрди "рд▓рдЯрдХрд╛" рд╣реЛрдЧрд╛, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрд╡рд┐рд╢реНрд╡рд╛рд╕ рдореЗрдВ рдХреБрдЫ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдЧрд╛ред

рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ - рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА QMutex рдореНрдпреВрдЯреЗрдХреНрд╕ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП lock рдХреЙрд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЙрд▓ рдФрд░ try_lock рдХреЛ рдЧреИрд░-рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдорд╛рдлреЛрд░ рдХреЗ рд▓рд┐рдП рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди - рдЕрдлрд╕реЛрд╕ - рд╡рд╣ рдирд╣реАрдВ рд╣реИред рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЕрд╕рдлрд▓ рд░рд╣рд╛ рдФрд░ рдЕрд╕рдлрд▓ рд░рд╣рд╛ - рдордВрдЪ рд╕рдорд╛рди рд╡рд┐рд╖рдпреЛрдВ рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдПрдХ рднреА рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ? рд╕рдорд╕реНрдпрд╛ред рджрд┐рд▓рдЪрд╕реНрдк? рдмрд╣реБрддред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдмреАрдбрд╝рд╛ рдЙрдард╛рдпрд╛ред

рдПрдХ QSystemSemaphore рд╕рд╛рде QSystemSemaphore рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрддрд░ рдкрд░ Qt рдореЗрдВ рдФрд░ рдХреНрдпрд╛ рд╣реИ? QSharedMemory ред рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рд╕реНрдореГрддрд┐ред рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

- QSharedMemory рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдБ
- рдкрд╣рд▓реЗ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рдореЗрдореЛрд░реА рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ attach
- рдпрджрд┐ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛, рддреЛ рд╣рдо рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА create рд▓рд┐рдП рдХреЙрд▓ рдХрд░рддреЗ create
- рд╣рдо рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреБрдЫ рдбреЗрдЯрд╛ рдХреЛ рджреВрд╕рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ)
- рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдЦреБрдж рдХреЛ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рд╕реЗ detach рдФрд░ detach рдмреБрд▓рд╛рддрд╛ рд╣реИ

рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ - рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ! рдпрджрд┐ attach рдХреЙрд▓ рд╕рдлрд▓ рд╣реИ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╣рд▓реА рдмрд╛рд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдХреЙрд▓ create рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдорд╛рд░реА рдкреНрд░рдзрд╛рдирддрд╛ рдХреЛ рд╕рдореЗрдХрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЕрд░реНрдерд╛рдд, рдЕрдиреНрдп рд╕рднреА рдХреЗ рд▓рд┐рдП, attach рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдлрд▓ рд╣реЛрдЧрд╛)ред рдпрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред

рдкрд╣рд▓рд╛ рд░реЗрд╕рд┐рдВрдЧ рд╣реИред рджреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдПрдХ рд╕рд╛рде attach рд╣реЛ рд╕рдХрддреА attach , рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рджреЛрдиреЛрдВ рдорд╛рди рд▓реЗрдВрдЧреЗ рдХрд┐ рд╡реЗ рдкрд╣рд▓реЗ рдФрд░ рдЪрд╛рд▓рд╛рди create ред рдПрдХ рд╕реНрдореГрддрд┐ рдмрдирд╛рдПрдЧрд╛, рджреВрд╕рд░рд╛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рд╕рд╣рд┐рд╖реНрдгреБред рдЖрдк рдЖрд╕рдкрд╛рд╕ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВред

рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ QSharedMemory рдХреЗ рд▓рд┐рдирдХреНрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЗрд╕рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ detach рдХреЛ рдореЗрдореЛрд░реА рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рдЕрдЧрд░ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЧрдИ рдФрд░ рдлрд┐рд░ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдИ, рддреЛ рдореЗрдореЛрд░реА рдмрдиреА рд░рд╣реЗрдЧреАред рдФрд░ рдЕрдЧрд▓реА attach рдХреЙрд▓ рд╕рдлрд▓ рд╣реЛрдЧреАред рдпрд╛рдиреА рдЖрд╡реЗрджрди рдХреЗ рдПрдХ рднреА рдЙрджрд╛рд╣рд░рдг рдХреА рдЕрд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдкреНрддрд┐ рдЗрд╕ рддрдереНрдп рдХреЛ рдЬрдиреНрдо рджреЗрдЧреА рдХрд┐ рдЖрд╡реЗрджрди рдХрд╛ рдХреЛрдИ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдореНрдоред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд╡рд░реНрдЧ рд╣реИрдВ - QSystemSemaphore рдФрд░ QSharedMemory , рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдЗрди рджреЛрдиреЛрдВ "рд╕рд╛рдордВрдЬрд╕реНрдп" рдХреЛ рд╕рд╛рдордВрдЬрд╕реНрдпрдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛?

рдФрд░ рд╣рд╛рдБ! QSystemSemaphore рдкрд╣рд▓реЗ QSharedMemory рд╕рдорд╕реНрдпрд╛, рд░реЗрд╕рд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдХреЛрдб:

 QSystemSemaphore sema("<Unique name1>", 1); bool isRunning; sema.acquire(); QSharedMemory shmem("<Unique name2>"); if (shmem.attach()) { isRunning = true; } else { shmem.create(1); isRunning = false; } sema.release(); 


рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реЗрдорд╛рдлреЛрд░ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдкреНрд░рдмрдВрдзрди рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдкреНрд░рд╛рдердорд┐рдХ, рд╡рд╛рдЯрд╕рдиред

рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЗрд╕рдХрд╛ рдПрдХ рд╕рдорд╛рдзрд╛рди рднреА рд╣реИред рдмрд╣реБрдд рдордЬрд╝реЗрджрд╛рд░ рд╣реИред рд▓рд┐рдВрдХ рдХреА рдХрд╛рдЙрдВрдЯрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдХреЗ рд▓рд┐рдирдХреНрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рдФрд░ рд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдмрд╕ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рдФрд░ рдЕрдЧрд░, рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреА рдЕрд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╢реВрдиреНрдп (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ) рд╕рдВрджрд░реНрдн рдЧрдгрдирд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдирдмреВрдЯреЗрдб рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдмрдиреА рд╣реБрдИ рд╣реИ, рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рддреБрд░рдВрдд рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рдореЗрдореЛрд░реА рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧреАред рдФрд░ рдпрджрд┐ рд╕рдВрджрд░реНрдн рд╕рдВрдЦреНрдпрд╛ рдЧреИрд░-рд╢реВрдиреНрдп рд╣реИ, рддреЛ рдпрд╣ рд╕рдорд╛рди рд░рд╣реЗрдЧреАред рдЬреЛ, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдЕрдВрддрд┐рдо рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 QSystemSemaphore sema("<Unique name1>", 1); bool isRunning; sema.acquire(); { QSharedMemory shmem("<Unique name2>"); shmem.attach(); } QSharedMemory shmem("<Unique name2>"); if (shmem.attach()) { isRunning = true; } else { shmem.create(1); isRunning = false; } sema.release(); 


рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ QSharedMemory рд╡рд░реНрдЧ рдХрд╛ рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг рдЖрд╡реЗрджрди рдХреЗ рдЕрдВрдд рддрдХ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ QSharedMemory рдЪрд╛рд╣рд┐рдПред рдФрд░ рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

Source: https://habr.com/ru/post/In173281/


All Articles