Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / Tuto_Boost / src / cpp / core / thread / 04_thread_objet_methode.cpp
diff --git a/WCudaMSE/Tuto_Boost/src/cpp/core/thread/04_thread_objet_methode.cpp b/WCudaMSE/Tuto_Boost/src/cpp/core/thread/04_thread_objet_methode.cpp
new file mode 100755 (executable)
index 0000000..b25af82
--- /dev/null
@@ -0,0 +1,67 @@
+#include <iostream>\r
+#include "Runnable.h"\r
+\r
+#include <boost/thread.hpp>\r
+#include <boost/date_time.hpp>\r
+\r
+\r
+\r
+using std::cout;\r
+using std::endl;\r
+\r
+using boost::thread;\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    Declaration                                     *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |*            Imported                *|\r
+ \*-------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |*            Public                  *|\r
+ \*-------------------------------------*/\r
+\r
+void helloThread_Methode(void);\r
+\r
+/*--------------------------------------*\\r
+ |*            Private                 *|\r
+ \*-------------------------------------*/\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    Implementation                                  *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |*            Public                  *|\r
+ \*-------------------------------------*/\r
+\r
+void helloThread_Methode(void)\r
+    {\r
+    int x = 10;\r
+    int y = 100;\r
+    Runnable runnable(x, y);\r
+\r
+    cout << "\nthread : methode : start" << endl;\r
+\r
+    // arg1 : adresse de la methode run de la classe Runnable\r
+    // arg2 : adresse de l'objet sur lequel aller chercher la metode run\r
+   thread threadRunnable(&Runnable::run, &runnable);\r
+\r
+    cout << "Waiting for thread ..." << endl;\r
+\r
+    threadRunnable.join();\r
+    cout << "thread : methode : end" << endl;\r
+\r
+    cout << "[outside thread] : " << x << " + " << y << " = " << runnable.getResult() << endl; // give bad result cause runnable instance is passed by value to  boost::thread\r
+    }\r
+\r
+/*--------------------------------------*\\r
+ |*            Private                 *|\r
+ \*-------------------------------------*/\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    End                                             *|\r
+ \*---------------------------------------------------------------------*/\r
+\r