คำถามติดแท็ก coroutine

โครูทีนเป็นโครงสร้างการควบคุมทั่วไปโดยการควบคุมการไหลจะถูกส่งผ่านร่วมกันระหว่างสองกิจวัตรที่แตกต่างกันโดยไม่ส่งกลับ

30
คำหลัก "ผลผลิต" ทำหน้าที่อะไร
การใช้yieldคำหลักใน Python คืออะไรและใช้ทำอะไร? ตัวอย่างเช่นฉันพยายามที่จะเข้าใจรหัสนี้1 : def _get_child_candidates(self, distance, min_dist, max_dist): if self._leftchild and distance - max_dist < self._median: yield self._leftchild if self._rightchild and distance + max_dist >= self._median: yield self._rightchild และนี่คือผู้โทร: result, candidates = [], [self] while candidates: node = candidates.pop() distance = node._get_dist(obj) if distance <= max_dist and distance …


9
ความแตกต่างระหว่างเธรดและไฟเบอร์คืออะไร?
ความแตกต่างระหว่างเธรดและไฟเบอร์คืออะไร? ฉันเคยได้ยินเรื่องเส้นใยจากทับทิมและฉันอ่านแล้วได้ยินว่ามันมีอยู่ในภาษาอื่นบางคนสามารถอธิบายให้ฉันได้ง่ายๆว่าอะไรคือความแตกต่างระหว่างเธรดและไฟเบอร์


6
อะไรคือความแตกต่างระหว่างการเปิดตัว / เข้าร่วมและ async / ที่รอใน Kotlin coroutines
ในkotlinx.coroutinesไลบรารีคุณสามารถเริ่ม coroutine ใหม่โดยใช้launch(กับjoin) หรือasync(พร้อมawait) ความแตกต่างระหว่างพวกเขาคืออะไร?


4
เทียบกับ Greenlet หัวข้อ
ฉันยังใหม่กับ gevents และ greenlets ฉันพบเอกสารที่ดีเกี่ยวกับวิธีการทำงานกับเอกสารเหล่านั้น แต่ไม่มีใครให้เหตุผลแก่ฉันเกี่ยวกับวิธีและเวลาที่ฉันควรใช้กรีนเล็ต! พวกเขาเก่งเรื่องอะไรดี? เป็นความคิดที่ดีที่จะใช้มันในพร็อกซีเซิร์ฟเวอร์หรือไม่? ทำไมไม่หัวข้อ? สิ่งที่ฉันไม่แน่ใจคือพวกเขาสามารถให้เราพร้อมกันได้อย่างไร

6
รูปแบบผลตอบแทน StartCoroutine / yield ทำงานอย่างไรใน Unity
ฉันเข้าใจหลักการของโครูทีน ฉันรู้วิธีทำให้มาตรฐานStartCoroutine/ yield returnรูปแบบทำงานใน C # ใน Unity เช่นเรียกใช้วิธีการส่งคืนIEnumeratorผ่านStartCoroutineและในวิธีนั้นทำอะไรบางอย่างyield return new WaitForSeconds(1);รอสักครู่แล้วทำอย่างอื่น คำถามของฉันคือเกิดอะไรขึ้นเบื้องหลัง? อะไรStartCoroutineทำจริงๆ? กลับมาIEnumeratorคืออะไรWaitForSeconds? การStartCoroutineควบคุมกลับไปยังส่วน "อย่างอื่น" ของวิธีการที่เรียกว่าอย่างไร ทั้งหมดนี้โต้ตอบกับโมเดลการทำงานพร้อมกันของ Unity อย่างไร (ซึ่งมีหลายสิ่งเกิดขึ้นพร้อมกันโดยไม่ต้องใช้โครูทีน)
134 c#  unity3d  coroutine 

12
C ++ เทียบเท่ากับรูปแบบตัวสร้าง Python
ฉันมีตัวอย่างโค้ด Python ที่ต้องเลียนแบบใน C ++ ฉันไม่ต้องการโซลูชันที่เฉพาะเจาะจงใด ๆ (เช่นโซลูชันผลตอบแทนตามกิจวัตรร่วมแม้ว่าจะเป็นคำตอบที่ยอมรับได้เช่นกัน) แต่ฉันต้องสร้างความหมายในบางลักษณะ หลาม นี่คือตัวสร้างลำดับขั้นพื้นฐานซึ่งมีขนาดใหญ่เกินไปที่จะจัดเก็บเวอร์ชันที่เป็นรูปธรรมอย่างชัดเจน def pair_sequence(): for i in range(2**32): for j in range(2**32): yield (i, j) เป้าหมายคือการรักษาสองอินสแตนซ์ของลำดับข้างต้นและวนซ้ำในช่วงกึ่งล็อค แต่เป็นชิ้น ๆ ในตัวอย่างด้านล่างfirst_passใช้ลำดับของคู่เพื่อเริ่มต้นบัฟเฟอร์และsecond_passสร้างลำดับที่แน่นอนเหมือนกันและประมวลผลบัฟเฟอร์อีกครั้ง def run(): seq1 = pair_sequence() seq2 = pair_sequence() buffer = [0] * 1000 first_pass(seq1, buffer) second_pass(seq2, buffer) ... repeat ... C ++ …

3
Coroutines ใน C ++ 20 คืออะไร?
Coroutines คืออะไรใน c ++ 20เหรอ? แตกต่างจาก "Parallelism2" หรือ / และ "Concurrency2" อย่างไร (ดูภาพด้านล่าง) ภาพด้านล่างมาจาก ISOCPP https://isocpp.org/files/img/wg21-timeline-2017-03.png
104 c++  coroutine  c++20 

4
asyncio.ensure_future กับ BaseEventLoop.create_task เทียบกับโครูทีนแบบธรรมดา?
ฉันเคยเห็นบทแนะนำ Python 3.5 พื้นฐานหลายตัวเกี่ยวกับ asyncio ที่ดำเนินการแบบเดียวกันในรสชาติต่างๆ ในรหัสนี้: import asyncio async def doit(i): print("Start %d" % i) await asyncio.sleep(3) print("End %d" % i) return i if __name__ == '__main__': loop = asyncio.get_event_loop() #futures = [asyncio.ensure_future(doit(i), loop=loop) for i in range(10)] #futures = [loop.create_task(doit(i)) for i in range(10)] futures = [doit(i) for …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.