ÇÁ·Î±×·¡¹Ö
ù ÆäÀÌÁö ·£´ý ±Û ȸ¿ø°¡ÀÔ ·Î±×ÀÎ
ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-02 20:27:51
URL https://te31.com/rgr/view.php?id=study&no=2460 ¸ð¹ÙÀÏ È­¸é
¸ÖƼ½º·¹µù°è ¹ÚÁö¼º±Þ¸¸

¾Æ·¡¿¡ ½Ã°£´ç È£ÃâȽ¼ö¸¦ ¼¼¸¶Æ÷¾î·Î Á¦ÇÑÇÑ´Ù°í ÇÑ ±Û ¿¬ÀåÀÔ´Ï´Ù.

¼¼¸¶Æ÷¾î ÀÚ¿ø°³¼ö 5°³·Î ÃʱâÈ­ ÈÄ

thread1¿¡¼­ V¸¦ ÃÊ´ç 5¹ø¾¿ È£ÃâÇϸé

thread2¿¡¼­ P¸¦ ¼ö½Ã·Î È£ÃâÇصµ

V°¡ ÀÚ¿ø°³¼ö 5ÀÌ»óÀ¸·Î ¾È¿Ã¶ó°¡¼­
thread2°¡ V¿¡ ¸ÂÃç ÃÊ´ç 5¹ø¾¿ È£ÃâÀÌ Àß µÇ¿©...python¿¡¼± Àß µË´Ï´Ù.

ÀÌ°Ô ¾î¶² ¹®Á¦¸¦ ¾ß±âÇÒ ¼ö ÀÖÀ»±î¿ä?








Àâ´ã | 1315¸íÀÌ Àоú¾î¿ä. 3.145.154.178

0
1 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-02 20:50:21
´Ù¸¥ ¾ð¾î·Î À̽ÄÇصµ Àß µÉ°ÍÀÎÁö...
2 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-02 21:44:24
¾È µÊ...VÈ£ÃâÇÒ¶§ ¸¶´Ù ¼¼¸¶Æ÷¾î ÀÚ¿ø°³¼ö°¡ ¹«ÇÑÈ÷ ´Ã¾î³ª³×¿ä..
3 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-02 22:14:31
Äڵ带 ¿Ã·Áº¸¼¼¿ä
5 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-03 00:22:16
import threading, time

sem = threading.Semaphore(5)

class AAA(threading.Thread):
....def run(self):
........for _ in range(10):
............time.sleep(1)
............print("A")
............sem.release()
............sem.release()
............sem.release()
............sem.release()
............sem.release()

def func():
....print("B")

aaa = AAA()
aaa.start()

for _ in range(20):
....sem.acquire()
....func()
----------------------------------------
AAAŬ·¡½ºÀÇ ½º·¹µå°¡ 1ÃÊ¿¡ ÇÑ ¹ø µ¹¶§ funcÇÔ¼ö°¡ 5¹ø ¼öÇàÇϵµ·Ï ÇÏ´Â ÄÚµå. ½ÇÇàÇϸé ÀÛµ¿Àº Àß µÊ. ±Ùµ¥ µð¹ö±ëÇÏ¸é ¼¼¸¶Æ÷¾î ÀÚ¿ø°³¼öÀÎ sem.__value°¡ sem.release() È£ÃâÇϴ¸¸Å­ °è¼Ó ´Ã¾î³². sem.acquire() È£ÃâÇϸé sem.__value°ª »ó°ü¾øÀÌ 5°³¾¿ ¼öÇà ÇÔ.

????????????????

funcÇÔ¼öÀÇ È£ÃâȽ¼ö¸¦ ÃÊ´ç 5ȸ ÀÌÇÏ·Î (spin lock ¾øÀÌ) Á¦ÇÑÇϴ°ÍÀÌ ¸ñÀûÀÔ´Ï´Ù.
7 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-03 03:54:43
¾Æ·¡ ´Þ·Á°í Çß´ø ´ñ±ÛÀε¥ ±ÛÀ» À߸ø´Þ¾Ò³×¿ä
8 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-03 04:01:22
±Ùµ¥ 4¹ø ÄÚµå´Â º°°³·Î Àß µ¹¾Æ°¡´Â °Í °°Àºµ¥ ¾Æ´Ñ°¡¿ä?
9 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-03 19:57:13
8 Àß µÇ±äÇØ¿ä. acquire()´Â ¼¼¸¶Æ÷¾î °ª¸¸Å­¸¸ ÁøÀÔ°¡´ÉÇؾßÇϴµ¥ 5°¡ ³Ñ¾îµµ ¿Ö 5¹ø¸¸ ÁøÀÔÇÏ´ÂÁö Àǹ®ÀÔ´Ï´Ù.
10 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-03 20:23:59
5°¡ ³Ñ¾îµµ 5¹ø¸¸ ÁøÀÔÇÏÁö ¾Ê´Â °Í °°Àºµ¥¿ë
11 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-03 21:03:18
´Ù½Ã Çߴµ¥ ¹«ÇÑÈ÷ ÁøÀÔÇϳ׿ä.

Threading.Semaphore »ó¼Ó¹Þ¾Æ releaseAll() ¼Ó¼ºÀ» Çϳª ¸¸µé°í
È£Ã⠽à ¸ðµçÀÚ¿øÀ» ÃʱⰪÀ¸·Î µ¹¸®µµ·Ï ÇÏ¿© ¹®Á¦¸¦ ÇØ°áÇß½À´Ï´Ù!

https://github.com/ppd0523/Coin/blob/master/util.py #semaphore
https://github.com/ppd0523/Coin/blob/master/cryton.py #»ç¿ë
´ñ±ÛÀ» ÀÛ¼ºÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.
(±ÇÇÑÀÌ ¾ø´Â ȸ¿ø·¹º§)
¸ñ·ÏÀ¸·Î
ÀÌ¿ë¾à°ü | ±¤°í/Á¦ÈÞ | °³ÀÎÁ¤º¸Ãë±Þ¹æħ | ¹®ÀÇ/½Å°í | ¸ð¹ÙÀÏ TE31 | ¼­¹ö ºÎÇÏ : 12.25%
½Ç½Ã°£ Issue Ä¿¹Â´ÏƼ TE31 [¾ËÁö·Õ] ¨Ï 2002-2024
TOP arrow_upward