THREAD คือการทำ Multi Processing ระดับ sub routine
พูดแล้วงง เด๋วยกตัวอย่างปัญหาเลยละกัน
ผมมีรายชื่อสาวไฮ5 อยู่ปามาน 10 นาง
ผมต้องการเขียนโปรแกรมไปโพสคอมเม้น สาวเหล่านี้
จะโพสทีละคน มันช้าาาา ไม่ทันใจ
ผมอยากจะโพส ทีละ 3
เป็นปริมาณที่เน็ตบ้านนอกบ้านผม มันรับได้พอดีเลย
ผมจึงต้องใช้ Thread มาช่วยในการทำงาน
ซึ่งจะสามารถ share data คือ variable ได้
เราจะกำหนดตัวแปร running คือตัวระบุว่า ตอนนี้มี thread รันอยู่กี่ตัว
เสร็จแล้วใน loop เราก็จะสร้าง async บล๊อกขึ้นมา มันคือการสร้าง thread ใหม่แบบง่ายๆ
แต่ถ้าอยากใช้ฟังก์ชั่น ก็ต้องใช้ new thread &sub ปามานนี้เลย ไว้มาเขียนคราวหน้า
เอาตัวอย่างไปก่อนนะครับ ไปลองรันดู
ผมจะเก็บลิสต์สาวๆ ด้วยการ enqueue การทำแบบนี้ thread จะสามารถเขียนอ่านจากคิวได้
สรุปคือ queue = joblist
มาเข้าตัวอย่างกันเลย
[hide=5][code]
use Thread qw(async);
use Thread::Queue;
my $q = new Thread::Queue;
my $running:shared;
$running = 0;
# กำหนดรายชื่อสาวๆ
@girls = qw(joy apple fern kaofang fon nun toey ratchy luktan);
foreach $i (@girls) {


Reply With Quote
