ข้ามไปที่เนื้อหาหลัก

บทความ

กำลังแสดงโพสต์จาก พฤษภาคม, 2011

For Seen, Hat Yai

อีกหนึ่งในร้านน้ำชาในหาดใหญ่ สำหรับร้านนี้ตั้งอยู่บนถนนธรรมนูญวิถี สามารถหาได้ง่ายๆ มีอาหารมากมายชื่อแปลกๆ ให้ลองชิมกัน ลองดูตัวอย่างบรรยากาศและอาหารกันครับ บรรยากาศร้าน สี่สหาย For See โรตีไข่ดาว แกวจืดตำลึง เอ็นไก่ทอด ข้าวไข่เจียว กีวีปั่น ชาชัก ใครๆ ก็ถามหาเมื่อมาหาดใหญ่ ร้านนี้เป็นร้านมุสลิม หากมาร้านก็อย่านำน้องหมา อาหารเสริมจำพวกหมู หรือของมึนเมาเข้ามานะครับ เนื่องจากอาจจะทำให้ทางร้านไม่สบายใจได้ ดู Food ในแผนที่ขนาดใหญ่กว่า

@ icecream, Hat Yai

นานแล้วที่แอบไปกินแล้วถ่ายรูปเก็บไว้แล้วไม่ได้โพสเลย วันนี้เลยมาแนะนำร้านไอติมอร่อยๆ ให้ลองชิมกัน นั้นก็คือร้าน @icecream นั้นเอง ทางไปร้านอาจจะลำบากหน่อยเนื่องจากตั้งอยู่บนถนนทุ่งรี หากไปในช่วงที่มีการจราจรคับคั้งก็อาจจะหาที่จอดรถลำบาก ไอสครีมที่นี่ทำเองจากผลไม้ต่างๆ ลองชิมดูนะครับ หน้าร้านจะมีน้องหมีรอต้อนรับ น้ำและแก้ว ไอศครีมลูกพีช มะม่วงน้ำปลาหวาน มะยมพริกเกลือ มีเค้กช็อกโกแลตด้วย สำหรับผมเป็นไอศครีมที่อร่อยมากครับ พึ่งรู้ว่าเอามะม่วงมาทำไอศครีมแล้วกินคู่กับน้ำปลาหวานนั้นอร่อยได้ถึงขนาดนี้ หากใครสนใจลองแวะไปชิมดูนะครับ ดู Food ในแผนที่ขนาดใหญ่กว่า

เรื่องวุ่นๆ ของ std::thread ใน C++0x

ถึงแม้ว่าผมเองจะเขียน C++ มาตั้งแต่ตอนเรียนปี 1 แต่หลายๆ ครั้งก็ยังสับสนเรื่องชนิดของตัวแปรอยู่ดี หลังจากปี 1 ก็เขียนมาหลายภาษา ไม่ว่าจะเป็น JAVA PHP Python ยิ่งส่งผลให้สับสนเรื่องลักษณะเด่นของแต่ละภาษา มาวันนี้เริ่มลองเขียน thread ใน C++0x ก็เจอดีอีกจนได้ เนื่องจาก object ใน C/C++ เป็น strong type ไม่เหมือนใน JAVA ที่เป็น reference พอเขียนให้เธรดทำงานจากนั้นไปเปลี่ยนแปลงสมาชิกข้อมูลของ class แต่ object ที่รันอยู่โดย std::thread กลับไม่เปลี่ยนแปลงอะไรเลย โจทย์คือทำอย่างไรให้ object มันใช้ข้อมูลร่วมกันได้ หาไปหามาปรากฎว่าเป็นเพราะไม่ยอมอ่าน doc นี่เอง !!_ _ Multi-threading in C++0x ได้แสดงตัวอย่างการใช้งานไว้ค่อนข้างละเอียดทีเดียว เลยลองมาเขียนเองเล่นๆ ดังตัวอย่างด้านล่าง #include <iostream> #include <thread> using namespace std; class DoWork { public: DoWork(){ cout << "this in constructor : " << this << endl; this->running = false; } bool running; void operator()(){ cout << "show running by operator : " << runnin

Thread บน C++0x

หลังจากนั่งเขียนโค้ดมาหลายวัน วันนี้จะต้องเขียนบางส่วนที่ทำงานโดยใช้เธรด (thread) จึงลองเขียนเล่นๆ นอกโปรเจคก่อน ผลออกมาน่าพอใจทีเดียว แต่ตอนคอมไพล์โปรแกรมต้องเพิ่มออพชันเข้าไปเพื่อให้ g++ รู้ว่ามีการใช้งานมาตรฐาน C++0x และเพิ่ม pthread เข้าไปด้วยมิฉะนั้นจะรันไม่ผ่าน ตัวอย่างโค้ดชื่อ thread.cpp #include <iostream> #include <thread> using namespace std; class DoWork { public: void operator()(int a, int b){ cout << "hello in thread a is " << a << " b is " << b << endl; } }; void hello_thread(){ cout << "hello from function" << endl; } int main(){ DoWork dw; thread a(dw, 10, 20); thread b(hello_thread); a.join(); b.join(); return 0; } หลังจากนั้นทดสอบคอมไพล์โปรแกรมแบบไม่เพิ่มไลบรารี pthread ดู จะแสดงข้อผิดพลาดดังด้านล่าง $ g++ --std=c++0x -o thread thread.cpp $ ./thread terminate called after throwing an instance of 'std::system_error' what(): Operation not permitte