1. 程式人生 > >VS2010下的多執行緒程式設計入門參考例程

VS2010下的多執行緒程式設計入門參考例程

/*                                                                                                        
 * File         : main.c
 * Description  :
 * Author       :
 * Copyright    :
 * ----------------------
 * History
 * Rev  : 0.1
 * Date : 2012-08-15
 *
 * create.
 * ----------------------
 */

//---------------Include files-------------------------//
#include <Windows.h>
#include <stdint.h>
#include <iostream>
using namespace std;

//---------------Type Defines-------------------------//
typedef uint32_t USER_THREAD_DATA_TYPE;  //定義使用者執行緒資料型別

//---------------Function Prototype-------------------------//
DWORD WINAPI ThreadProc(LPVOID lpParam); //執行緒處理函式

/* 
 * === FUNCTION =========================================
 * Name         : main
 * Description  : 主函式
 * =====================================================
 */
int main()
{
 USER_THREAD_DATA_TYPE pThreadData = 5;
 HANDLE pThreadHandle = CreateThread(NULL, 0, ThreadProc, &pThreadData, 0, NULL); //建立執行緒

 if(pThreadHandle == NULL)
 {
  cout<<"執行緒建立失敗!"<<endl;
 }
 else
 {
  while(pThreadData)
  {
   cout<<"剩餘"<<pThreadData--<<"秒"<<endl;
   Sleep(1000); //延時1秒
  }
  WaitForMultipleObjects(1, &pThreadHandle, TRUE, INFINITE); //等待執行緒退出
  CloseHandle(pThreadHandle);  //關閉執行緒
  cout<<"執行緒退出!"<<endl;
 }
  
 return 0;
}

/* 
 * === FUNCTION =========================================
 * Name         : ThreadProc
 * Description  : 執行緒處理函式
 * =====================================================
 */
DWORD WINAPI ThreadProc( LPVOID lpParam )
{
 USER_THREAD_DATA_TYPE *temp = (USER_THREAD_DATA_TYPE *)lpParam;

 cout<<"進入執行緒,等待退出"<<endl;
 while(*temp); //等待引數值為0

 return 0;
}

相關推薦

VS2010執行程式設計入門參考

/*                                                                                                          * File         : main.c  * De

C/S模式---執行程式設計

伺服器採用單程序/執行緒程式設計,在同一時刻,伺服器只能與一個客戶端進行互動。只有與當前客戶端的通訊結束後,才能為下一個客戶端進行服務。所以,如果採用執行緒,讓主執行緒連線客戶端,而函式執行緒為每個客戶端進行服務,這樣就可以保證伺服器可以同時為多個客戶端提供服務,實現併發。 採用多執

solaris 執行程式設計

2007-08-10 本文遵循CPL協議,可以免費自由使用,但不得去掉作者資訊。 作者: 周海漢 Email:ablozhou at gmail.com 日期:2007.8.9 本文根據作者PPT講稿整理。 參考資源:

Linux執行程式設計入門

1 執行緒基本知識 程序是資源管理的基本單元,而執行緒是系統排程的基本單元,執行緒是作業系統能夠進行排程運算的最小單位,它被包含在程序之中,是程序中的實際運作單位。一條執行緒指的是程序中一個單一順序的控制流,一個程序中可以併發多個執行緒,每條執行緒並行執行不同

java執行程式設計入門之鎖的使用

package com.CUPK.lsz.TraditionalThread; //實現互斥的第一種方法:作為定義詞修飾程式碼 public class TraditonalThreadSynchronized1 { final Outputer outputer = new Outputer(

java執行程式設計入門

package com.CUPK.lsz; public class TraditionalThread { public static void main(String[] args) { /* * 方法一: */ // 定義一個子類物件 Thread thread

C/C++ Linux執行程式設計 #include

1.最基礎,程序同時建立5個執行緒,各自呼叫同一個函式 #include <iostream> #include <pthread.h> //多執行緒相關操作標頭檔案,可移植眾多平臺   using namespa

c++ 執行程式設計入門 訊號量使用

1、pthread_create函式定義 int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict attr,void *(*start_rtn)(void), void

VS2010執行的除錯(來自MSDN)

使用“執行緒”視窗 “執行緒”視窗包含每行表示應用程式中一個執行緒的表。 預設情況下,該表列出應用程式中的所有執行緒,但您可以篩選列表以僅顯示您感興趣的執行緒。 每列都包含不同型別的資訊。 您還可以隱藏某些列。 如果顯示所有列,將從左到右顯示以下資訊: 標誌列,您可以

linux執行程式設計pthread 同步 互斥

前言 linux下關於並行程式設計有兩種實現方式:fork和pthread_create;其實核心中的執行路徑是相同的,只是flags不一樣罷了。本文的主題是關於pthread_create多執行緒

執行程式設計入門(4):wait,notify方法使用注意事項

1 問題 2 程式碼 public class WaitAndNotify1 { public static void main(String[] args) { Thread t1=new Thread(new Runn

Linux執行程式設計遇到的一些問題

今天在學習了Linux的多執行緒程式設計的基礎的知識點。於是就試著做了一個簡單的Demo。本以為會得到預期的結果。不成想卻遇到了意想不到的問題。 程式碼展示 我的C 程式碼很簡單,就是一個簡單的示例程式,如下: #include <s

Linux執行程式設計學習【2】——同代…

要想一份程式碼在linux下能編譯,在windows下也能編譯,就得應用巨集處理。最初產生這個構想,是在學習opengl的時候,發覺glut庫是跨平臺的,檢視原始碼後發覺glut裡面進行了很多巨集處理。這是第一次知道編譯器在進行編譯的時候也會定義一些巨集關鍵字。 程式結果如下: 在win8系統下,用d

執行程式設計入門(一)

多執行緒簡介 1: 什麼是多執行緒 多執行緒,是指從軟體或者硬體上實現多個執行緒併發執行的技術。具有多執行緒能力的計算機因有硬體支援而能夠在同一時間執行多於一個執行緒,進而提升整體處理效能。具有這種能力的系統包括對稱多處理機、多核心處理器以及晶片級多處理

Windows 執行程式設計入門(1)

看了網上一些說法,總結以下幾點: 1:從C++11開始,標準庫裡已經包含了對執行緒的支援,即: std::thread 2:C++本身還支援pthread這個API來進行多執行緒程式設計。 3:自己常用Windows程式設計,還是擁抱一下C++11吧

Linux執行程式設計互斥鎖和條件變數的簡單使用

Linux下的多執行緒遵循POSIX執行緒介面,稱為pthread。編寫Linux下的多執行緒程式,需要使用標頭檔案pthread.h,連結時需要使用庫libpthread.a。執行緒是程序的一個實體,是CPU排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位。執行緒

java執行程式設計詳細入門教程

##1、概念      執行緒是jvm排程的最小單元,也叫做輕量級程序,程序是由執行緒組成,執行緒擁有私有的程式技術器以及棧,並且能夠訪問堆中的共享資源。這裡提出一個問題,為什麼要用多執行緒?有一下幾點,首先,隨著cpu核心數的增加,計算機硬

Python中的執行程式設計執行安全與鎖(一) 聊聊Python中的GIL 聊聊Python中的GIL python基礎之執行鎖機制 python--threading執行總結 Python3入門執行threading常用方法

1. 多執行緒程式設計與執行緒安全相關重要概念 在我的上篇博文 聊聊Python中的GIL 中,我們熟悉了幾個特別重要的概念:GIL,執行緒,程序, 執行緒安全,原子操作。 以下是簡單回顧,詳細介紹請直接看聊聊Python中的GIL  GIL:&n

c++ 網路程式設計(九)TCP/IP LINUX/windows 執行超詳細教程 以及 執行實現服務端

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <process.h> #include <winsock2.h> #include <win

c++ 網路程式設計(九)TCP/IP LINUX/windows 執行超詳細教程 以及 執行實現服務端

原文作者:aircraft 原文連結:https://www.cnblogs.com/DOMLX/p/9661012.html  先講Linux下(windows下在後面可以直接跳到後面看): 一.執行緒基本概念 前面我們講過多程序伺服器,但我們知道它開銷很大