จากโปรแกรมแรก จะเป็น small sub โดยใช้ async
แต่ตอนนี้จะเป็นตัวอย่าง ที่เพิ่งใช้จริง แล้วเจอปัญหาจริง
เมื่อสร้าง thread แล้ว จำเป็นต้องทำอย่างใดอย่างนึง คือ...
join หรือ detach
join คือ การเอา thread นั้นมาเป็นส่วนนึงของ process หลัก
ส่วน detach คือการปล่อยมันไป (ปล่อยมันไป ช่างเม่มัน)
ถ้าไม่ทำอะไรเลยสักอย่าง จะเกิดสิ่งที่เรียกว่า memory leak
แล้วเครื่องก็จะเม็มเต็ม แล้วอืดดด เน่า แฮงค์ไปเลย
มันมีฟังก์ชั่นในการมาช่วยคือ threads->list หมายความว่า
โชว์ thread ที่ยังทำงานอยู่ (ซึ่งจะไม่โชว์ thread ที่ detach)
โอเค เรามาเข้าตัวอย่างเลยดีกว่า
[hide=5]
[code]use Thread;
use Thread::Queue;
my $q = new Thread::Queue;
my $running:shared; ######## กำหนดตัวแปร running เป็น shared variable ระหว่าง thread ใช้ร่วมกัน
$running = 0;
@girls = qw(joy apple fern kaofang fon nun toey ratchy luktan);
foreach $i (@girls) {