Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread.


Diễn đàn chia sẻ kiến thức, kinh nghiệm về IT và cuộc sống!
 
Trang ChínhGalleryTìm kiếmLatest imagesĐăng kýĐăng Nhập
Top posters
Sakura (1124)
Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_lcapBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Voting_barBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_rcap 
hotboy (705)
Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_lcapBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Voting_barBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_rcap 
Già Làng (373)
Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_lcapBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Voting_barBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_rcap 
con_ca_nho90 (289)
Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_lcapBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Voting_barBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_rcap 
that_true (154)
Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_lcapBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Voting_barBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_rcap 
theanhkkt (143)
Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_lcapBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Voting_barBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_rcap 
phamay (137)
Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_lcapBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Voting_barBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_rcap 
lovelonelyman (134)
Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_lcapBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Voting_barBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_rcap 
o0ovioletstaro0o (128)
Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_lcapBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Voting_barBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_rcap 
stevenhung (122)
Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_lcapBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Voting_barBài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Vote_rcap 
Âm - Dương lịch
Clock
Logo
11TH02 Pro!
Liên kết
Tin tức 60s
Tin công nghệ
Thời sự 24h
Game Moblie

Share
 

 Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread.

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Sakura

Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Stars7
Sakura

Thú CƯng : Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. I-hate-Cats-icon
Nam Scorpio

Số bài viết : 1124
Điểm : 1688
Được cảm ơn : 35
Ngày sinh : 03/11/1990
Tham gia ngày : 16/03/2010
Tuổi : 34
Đến từ : Bình Dương
Ngề nghiệp : IT Student

Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Empty
Bài gửiTiêu đề: Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread.   Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. I_icon_minitime31/3/2011, 10:09

Tiêu đề đã nói quá rõ, các bạn, ai chưa có thì copy về tham khảo để tuần sau tiếp tục.
Bài còn rất đơn sơ, ai thik tinh chỉnh gì thì cứ việc nha!

Code:
//Thuc hanh OS tuan 4
//Tao va quan ly cac tieu trinh - Thread.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <Windows.h>
#include <iostream>

using namespace std;

void Clrscr(void)
{
   CONSOLE_SCREEN_BUFFER_INFO  csbiInfo;                 
   HANDLE  hConsoleOut;
   COORD  Home = {0,0};
   DWORD  dummy;

   hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
   GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

   FillConsoleOutputCharacter(hConsoleOut,' ',csbiInfo.dwSize.X * csbiInfo.dwSize.Y,Home,&dummy);
   csbiInfo.dwCursorPosition.X = 0;                       
   csbiInfo.dwCursorPosition.Y = 0;                       
   SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);
}

void GotoXY(short x,short y)
{
   HANDLE hConsoleOutput;
   COORD Cursor_an_Pos = { x,y};
   hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
   SetConsoleCursorPosition(hConsoleOutput , Cursor_an_Pos);
}

void SetColor(WORD color)
{
   HANDLE hConsoleOutput;
   hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);

   CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info;
   GetConsoleScreenBufferInfo(hConsoleOutput, &screen_buffer_info);

   WORD wAttributes = screen_buffer_info.wAttributes;
   color &= 0x000f;
   wAttributes &= 0xfff0;
   wAttributes |= color;

   SetConsoleTextAttribute(hConsoleOutput, wAttributes);
}

void SetBGColor(WORD color)
{
   HANDLE hConsoleOutput;
   hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);

   CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info;
   GetConsoleScreenBufferInfo(hConsoleOutput, &screen_buffer_info);

   WORD wAttributes = screen_buffer_info.wAttributes;
   color &= 0x000f;
   color <<= 4;
   wAttributes &= 0xff0f;
   wAttributes |= color;

   SetConsoleTextAttribute(hConsoleOutput, wAttributes);
}

int WhereX( void )
{
   HANDLE hConsoleOutput;
   hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
   CONSOLE_SCREEN_BUFFER_INFO coninfo;
   GetConsoleScreenBufferInfo (hConsoleOutput, &coninfo);
   return coninfo.dwCursorPosition.X;
}

int WhereY( void )
{
   HANDLE hConsoleOutput;
   hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
   CONSOLE_SCREEN_BUFFER_INFO coninfo;
   GetConsoleScreenBufferInfo (hConsoleOutput, &coninfo);
   return coninfo.dwCursorPosition.Y;
}

int MaxX()
{
   CONSOLE_SCREEN_BUFFER_INFO  csbiInfo;
   return csbiInfo.dwSize.X;
}

int MaxY()
{
   CONSOLE_SCREEN_BUFFER_INFO  csbiInfo;
   return csbiInfo.dwSize.Y;
}

void ThreadPro(LPVOID chon)
{
   char ch = (char)chon;
   int x = 0;
   int y = 0;
   switch(ch)
   {
   case '1':
      while(true)
      {
         GotoXY(20, 20);
         cout<<x;
         x++;
         Sleep(500);
      }
      break;

   case '2':
      while(true)
      {
         GotoXY(30, 30);
         cout<<y;
         y++;
         Sleep(500);
      }
      break;
   }
}

void menu()
{
   HANDLE hTh1, hTh2;
   DWORD idTh1, idTh2;
   hTh1 = hTh2 = NULL;

   char chon;
   do
   {
      Clrscr();
      cout<<"\n=====TIEU TRINH=====\n";
      cout<<"0. THOAT";
      cout<<"\n1. Tieu trinh 1.";
      cout<<"\n2. Tieu tirnh 2.";
      cout<<"\n3. Tam dung tieu trinh 1.";
      cout<<"\n4. Tam dung tieu trinh 2.";
      cout<<"\n5. Tiep tuc tieu trinh 1.";
      cout<<"\n6. Tiep tuc tieu trinh 2.";
      cout<<"\n7. Do uu tien tieu trinh 1.";
      cout<<"\n8. Do uu tien tieu trinh 2.";
      cout<<"\na. Cham dut tieu trinh 1.";
      cout<<"\nb. Cham dut tieu trinh 2.";
      cout<<"\nCHON: ";
      chon = _getche();
      switch(chon)
      {
      case '0':
         return;

      case '1':
         if(!hTh1)
         {
            hTh1 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadPro, (LPVOID)chon, 0, (LPDWORD)idTh1);
            if(hTh1 != NULL)
               cout<<"Tao thanh cong";
         }
         break;

      case '2':
         if(!hTh2)
         {
            hTh2 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadPro, (LPVOID)chon, 0, (LPDWORD)idTh2);
            if(hTh2 != NULL)
               cout<<"Tao thanh cong";
         }
         break;

      case '3':
         SuspendThread(hTh1);
         break;

      case '4':
         SuspendThread(hTh2);
         break;

      case '5':
         ResumeThread(hTh1);
         break;

      case '6':
         ResumeThread(hTh2);
         break;

      case '7':
         SetThreadPriority(hTh1, 15);
         break;

      case '8':
         SetThreadPriority(hTh2, 15);
         break;

      case 'a':
         TerminateThread(hTh1, -1000 );
         hTh1 = NULL;
         break;

      case 'b':
         TerminateThread(hTh2, -1000 );
         hTh2 = NULL;
         break;

      default:
         cout<<"\nKhong co phim chuc nang nay.";
         _getch();
         break;
      }
   }while(1);

}
int main()
{
   menu();
   return 0;
}
Về Đầu Trang Go down
stevenhung

Member Năng Động


Member Năng Động
stevenhung

Nam Pisces

Số bài viết : 122
Điểm : 196
Được cảm ơn : 10
Ngày sinh : 20/03/1990
Tham gia ngày : 26/03/2010
Tuổi : 34
Đến từ : Bình Dương
Ngề nghiệp : Student
Chăm ngôn : Go far away

Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. Empty
Bài gửiTiêu đề: Re: Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread.   Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread. I_icon_minitime31/3/2011, 10:20

k đi học 2 buổi càng ngày càng *** ra rùi, pữa nào ewa_Hoang chỉ giáo lại cho tui tí nha, thank trước Rolling Eyes
Về Đầu Trang Go down
 

Bài thực hành OS tuần 4 - Tạo và quản lý các tiểu trình - Thread.

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

 Similar topics

-
» [Lập Trình Tính Toán Hình Thức]Full Thực hành tuần 1 --> 3
» bài tập thực hành tuần 1
» bài thực hành AI tuần 1
» Giáo trình thực hành Lập trình hệ thống - Ebook
» Bài tập thực hành SQL Server Tuần 2 - Nhóm 1

Permissions in this forum:Bạn không có quyền trả lời bài viết
IT World! :: HỌC TẬP :: HỌC KỲ V :: Hệ Điều Hành-