ÇÁ·Î±×·¡¹Ö
ù ÆäÀÌÁö ·£´ý ±Û ȸ¿ø°¡ÀÔ ·Î±×ÀÎ
ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-01 03:35:48
URL https://te31.com/rgr/view.php?id=study&no=2459 ¸ð¹ÙÀÏ È­¸é
methodÀÇ È£Ãâ Ƚ¼ö Á¦ÇÑ ¹æ½Ä?


÷ºÎ À̹ÌÁö : 1°³


½Ã°£´ç È£ÃâµÇ´Â Ƚ¼ö°¡ Á¦ÇÑÀûÀÎ ¸Þ¼ÒµåµéÀ» ±¸ÇöÇÏ°í ÀÖ½À´Ï´Ù.

1)
È£Ãú ¸Þ¼¼ÁöÅ¥¸¦ ¸¸µé°í, dequeueÇØÁÖ´Â thread¸¦ µû·Î ¿î¿ë.

2)
½Ã°£´ç È£Ãâ°¡´É Ƚ¼ö¸¦ °®´Â semaphore¸¦ ¿î¿ë.


¿©±â¼­ 2¸¦ äÅÃÇÏ¸é ¾î¶² ¹®Á¦°¡ »ý±æ¼ö ÀÖÀ»±î¿ä?

Àâ´ã | 1304¸íÀÌ Àоú¾î¿ä. 18.223.21.5

0
1 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-01 08:13:43
µÑ´Ù ½Ã¸®¾ó¶óÀÌÁî µÇ´Âµ¥ ¹¹ ´Ù¸¦°Ô ÀÖÀ»±î¿© (¸ð¸§)
2 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-01 10:52:17
¹»·Î ±¸ÇöÇÏ´À³Ä°¡ Áß¿äÇÑ°Ô ¾Æ´Ï¶ó ´ë±âŸ´Âµ¿¾È ¹» ÇÒ°ÇÁö°¡ Áß¿äÇÑ°Å ¾Æ´ÒÁö
3 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-02 00:43:26
1ÀÌ°Ç 2°Ç °á±¹ ¶ôÀâ°í sleep ÇÏ´Â ¹æ½ÄÀ¸·Î ±¸ÇöÇÒ°Å ¾Æ´Ñ°¡¿µ?
4 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-02 00:46:09
µÑ´Ù ¶ôµÉ ¶© ½½¸³ÇؾßÇϴµ¥ µüÈ÷ ¹®Á¦´Â ¾ö½áº¸ÀÔ´Ï´Ù. °¨»çÇÕ´Ï´Ù
7 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-03 04:51:56
¿¹Àü¿¡ 1¹øÀ¸·Î

class ScheduleQueue(threading.Thread):
....# (Function, Args, Callback) tuple queue
....def __init__(self, exec_per_sec):
........threading.Thread.__init__(self)
........self.daemon = True
........self.time_log = deque()
........self.schedule_queue = deque()
........self.exec_per_sec = exec_per_sec

....def __len__(self):
........return len(self.schedule_queue)

....def push(self, func, args, callback):
........self.schedule_queue.append((func, args, callback))

....def exec(self):
........while len(self.schedule_queue) == 0:
............time.sleep(0.1)

........while len(self.time_log):
............front = self.time_log[0]
............if front > datetime.today() - timedelta(seconds=1):
................break
............self.time_log.popleft()

........if len(self.time_log) == self.exec_per_sec:
............time.sleep((self.time_log[0] + timedelta(seconds=1) - datetime.today()).total_seconds())
............return

........while len(self.time_log) < self.exec_per_sec and len(self.schedule_queue):
............func, args, callback = self.schedule_queue.popleft()
............if callback:
................callback(*func(*args))
............else:
................func(*args)
............self.time_log.append(datetime.today())

API È£Ãâ Å¥¸¦ ÀÌ·±½ÄÀ¸·Î ±¸ÇöÇسù¾ú´ø °Í °°Àºµ¥ ÀÛµ¿Àº Àß µÆ´ø °Í °°Àºµ¥ À̰͵µ ¹®Á¦°¡ Á» ÀÖÀ» °Í °°¾Æ¼­ ¾î¶»°Ô °íÄ¡¸é ÁÁÀ»Áö ÇÁ·Î±×·¡¹Ö °Ô½ÃÆÇ ¾ÆÁ¶¾¾µéÀÇ °í°ßÀ» µè°í½Í³×¿ä

¿ÀŸ°¡ ³Ñ ¸¹¾Æ¼­ ¼öÁ¤..
8 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-03 05:10:17
7// exec_per_sec°¡ 10º¸´Ù Ŭ¶§, ÇÔ¼ö ¼öÇà½Ã°£ÀÌ ÇÔ¼ö È£Ãâ °£°Ýº¸´Ù ÀÛÀ¸¸é ÃÊ´ç 10ȸ·Î °íÁ¤µÇ´Â ¹®Á¦°¡ Àְڳ׿ä.
9 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-03 07:40:25
³Ã ½ºÄÉÁì Å¥°¡ ºñ¾îÀÖ´Â »óȲ¿¡¼­µµ sleepÀ» ¾ÈÁÖ¸é ³Ê¹« ¸¹Àº ½Ã°£À» ³¶ºñ ÇÒ °Í °°¾Æ¼­ ±×³É ¹«ÀÛÁ¤ 0.1ÃÊ ½½¸³À» Áá´Âµ¥ ±×·± ÄÉÀ̽ºµµ »ý°¢ ÇØ º¼ ¼ö ÀÖ°Ú±º¿ä
10 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-03 08:04:21
Å¥°¡ 0ÀÎ °æ¿ì P

pushÇÒ¶§ VÇÏ°Ô °íÃÄ ºÃ´Âµ¥ ÀÌ·¸°Ô ¸¸µå´Â ¹æÇâÀÌ ¸ÂÀ»±î¿ä?
11 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-03 12:01:58
thread event·Î pushÈÄ setÇÏ°í, sleep´ë½Å wait-clear¸¦ ÇÏ´Â Á¤µµ·Î ÃæºÐÇÏÁÒ
12 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-03 14:58:32
¾ÆÇÏ thread event¶ó´Â°Ô ÀÖ±º¿ä. push¿¡setÇÏ°í sleep´ë½Å clearÀÌÈÄ waitÇÏ°Ô ¹Ù²å½¿´Ù. ´õ ¾øÀ»±î¿ä?
´ñ±ÛÀ» ÀÛ¼ºÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.
(±ÇÇÑÀÌ ¾ø´Â ȸ¿ø·¹º§)
¸ñ·ÏÀ¸·Î
ÀÌ¿ë¾à°ü | ±¤°í/Á¦ÈÞ | °³ÀÎÁ¤º¸Ãë±Þ¹æħ | ¹®ÀÇ/½Å°í | ¸ð¹ÙÀÏ TE31 | ¼­¹ö ºÎÇÏ : 15.75%
½Ç½Ã°£ Issue Ä¿¹Â´ÏƼ TE31 [¾ËÁö·Õ] ¨Ï 2002-2024
TOP arrow_upward