View Full Version : ایجاد ترد
TheMatrix
جمعه 21 دی 1386, 18:01 عصر
سلام دوستان میخواستم ببینم میشه یکی از دوستان لطف کن یه تکه کد خیلی ساده بده که توش یه ترد جدید ایجاد و شروع به کار کنه.
البته من با VS08 کار میکنم.
یه کم هم اگه میشه کد رو تحلیل کنید ممنون میشم.
Nima_NF
جمعه 21 دی 1386, 21:35 عصر
#include "stdafx.h"
#include <iostream>
#include <process.h>
#include <windows.h>
void Thread2 (void *nothing );
using namespace std ;
int x = 0;
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Main Thread is working." << endl;
_beginthread (Thread2, 0, NULL) ;
// you can do other tasks here
Sleep(500);
cout << "x is :" << x << endl;
getchar();
return 0;
}
void Thread2 (void *nothing )
{
cout << "Thread 2 is working." << endl;
while (true)
{
x++;
if ( x >= 1000000000 ) // until one million
{
cout << "Thread 2 finished." << endl;
_endthread(); // finish and exit thread
}
}
}
فقط یک نمونه بسیار ساده هست ،
مثلا مقدار x را که به صورت متغیر عمومی تعریف شده است تا مقدار یک ملیون (یک واحد یک واحد) در حلقه بی نهایت اضافه می کند و در عین حال شما می توانید اعمال دیگری را در داخل تابع main خود (یعنی thread اصلی یا همان thread شماره 1) به همان ترتیب قبل ادامه یابد.
یعنی x بعد از نیم ثانیه توقف دوباره چاپ می شود. این در حالی هست که این دو عمل (اعمال داخل دو تابع) به طور همزمان و همروند در حال اجرا هستند.
فقط جهت تاکید بدانید که همیشه کار با thread ها به همین سادگی نیست و پیش نیاز آن داشتن اطلاعات کافی در زمینه سیستم عامل (مثل سمافور ، مانیتور ، ناحیه بحرانی و ...) می باشد.
wskfhut
سه شنبه 01 آذر 1390, 08:05 صبح
بسیار بسیار سپاسگذار
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.