Java

เมื่อ Stop แล้วมันไม่จบ

Submitted by ezybzy on Thu, 2012-01-05 - 10:39

เคยไหม เปิดหน้าเว็บเพื่อทำธุรกรรมบางอย่างแล้วรอนานมากจนกด Stop แล้ว Refresh เพื่อเริ่มใหม่?

สำหรับคนทั่วไปอาจจะคิดว่าเมื่อ Stop แล้วทุกอย่างจะจบพร้อมเริ่มใหม่เมื่อเรากด Refresh แต่จริง ๆ แล้วมันไม่ได้เป็นเช่นนั้นเลย

ความจริงที่เกิดขึ้นคือการ Stop ของเราเป็นแค่การหยุดรับผลลัพธ์ (HTTP Response ที่ถูกส่งกลับมา) แต่กระบวนการสร้างผลลัพธ์นั้นก็ยังคงดำเนินต่อไป

ตัวอย่างง่าย ๆ ลองเขียน Java Servlet หนึ่งตัวโดย Code ต่อไปนี้

try {
    this.getServletContext().log("Begin: " + Calendar.getInstance().toString());
    Thread.sleep(20 * 1000);
    // ... (Write something out to screen)
    throw new Exception();
} (Exception e) {
    this.getServletContext().log("End: " + Calendar.getInstance().toString());
}

จากตัวอย่าง Code ด้านบน จะเห็นว่ามีการหน่วงเวลาไว้ 20 วินาทีก่อนจะแสดงผลใด ๆ ออกทางหน้าจอ แต่หากเรากด Stop ไปที่ช่วงวินาทีที่ 15 แล้วอ่าน Log ของ Tomcat หลังจากนั้นซักพักใหญ่ เราจะพบทั้ง Begin และ End ใน Log นั่นจึงเป็นการพิสูจน์ได้ว่า เมื่อเกิดการ Request ขึ้นมา กระบวนการในการจัดการ Request จะถูกดำเนินการจนแล้วเสร็จโดยไม่สนว่าผู้รับ (ในกรณีนี้คือ Browser) จะอยู่รอรับผลหรือไม่

Blog Tags

Java 6 สำหรับ Leopard มาเสียที

Submitted by ezybzy on Wed, 2007-12-19 - 09:22

แต่สำหรับ Leopard นะ และต้องเป็นเครื่อง Intel ตระกูล 64-bit ด้วย (เครื่องเก่าของผม, PowerPC อด)

นี่เป็นแค่สัญญาณเริ่มต้นว่าเขายังทำอะไรอยู่บ้าง แม้จะดูว่ามันล่าช้าเกินไปก็ตามที แต่เล่นข้ามจาก DP1 มา DP8 เลย แสดงว่าเขาไม่ได้ปล่อยอะไรออกมาข้างนอกนานเหมือนกันนะ

ยังไม่มี Java 6 สำหรับ Leopard

Submitted by ezybzy on Tue, 2007-10-30 - 22:19

ครับ รอแล้วรอเล่า (จริงๆ ผมก็อยากจะเขียน Java 6 ใจจะขาดเหมือนกัน แม้ว่าผมจะทำงานเกี่ยวกับ .NET ด้วยภาษา C# ก็เถอะ) จนในที่สุด Mac OS X Leopard ออกวางจำหน่าย

แต่สิ่งที่เห็นมาตั้งแต่ Beta จนถึง Golden Master ก็คือ มันไม่มีอะไรบ่งบอกถึงการมีตัวตนของ Java 6 บน Leopard เลย ที่เราเห็นล่าสุดคือ Developer Preview 1 ที่ออกเมื่อเดือนธันวาคมปีที่ผ่านมา (2006) และหลังจากนั้นก็เงียบครับ (และตอนนี้ก็หายไปจากหน้าเว็บของ Apple ไปแล้ว ไม่มีการพูดถึง Java อีกเลย)