1. 程式人生 > >學習筆記:windows下,用c語言來建立執行緒

學習筆記:windows下,用c語言來建立執行緒

#include <stdio.h>
#include <windows.h>

typedef void * HANDLE;
#define SEMAPHORE HANDLE
#define THREADHANDLE HANDLE
#define THREADPROCESS DWORD WINAPI
#define THREADRETURN 0
#define PTHREADPROCESS LPTHREAD_START_ROUTINE
#define NULLTHREAD NULL

int g_thread_end = 0;

THREADHANDLE os_creatthread(PTHREADPROCESS fun,void *para)
{
 unsigned long id;
 return CreateThread(NULL,0,fun,para,0,&id);
}
void waitforthread()
{
 while (g_thread_end == 0)
 {
  NULL;
 }
}
THREADPROCESS threadfun(PVOID arg)
{
 int i;
 for(i=0; i < 0xfffffff; i++)
 {
  NULL;
 }
 g_thread_end = 1;
 return 0;
}


void main()
{
 THREADHANDLE pthread = NULLTHREAD;

 printf("Creating thread.../n");
 pthread = os_creatthread(threadfun,NULL);
 printf("Creating thread completed.Handle:%x/n",pthread);

 printf("Waiting for thread.../n");
 waitforthread();
 printf("Waiting ended./n");
}
//////////////////////////////////////////////////////////////////////////
/*在Windows下面,用CreateThread(LPSECURITY_ATTRIBUTES   lpThreadAttributes,  
                                                              DWORD   dwStackSize,  
                                                              LPTHREAD_START_ROUTINE   lpStartAddress,  
                                                              LPVOID   lpParameter,  
                                                              DWORD   dwCreateionFlags,  
                                                              LPDWORD   lpThreadId)  
  函式可以建立一個執行緒,第一個引數指執行緒的安全屬性的設定,第二個引數表示執行緒堆疊的大小,第三個引數表示執行緒函式名稱,第四個引數執行緒執行的引數,第五個引數指執行緒的優先順序,最後一個引數指向執行緒的ID。關於windows下用C建立多執行緒可以查查MSDN即可。  
*/
////////////////////////////////////////////////////////////////////////// 

相關推薦

學習筆記windowsc語言建立執行

#include <stdio.h>#include <windows.h> typedef void * HANDLE;#define SEMAPHORE HANDLE#define THREADHANDLE HANDLE#define THREAD

RabbitMQ的學習(一)Windows安裝及配置RabbitMQerlang環境變數

前言:從本章開始,慢慢去了解並深化架構師成長路上所需要的基礎框架:訊息中介軟體; 從這裡開始,會一直往下學習,從what to do到how to do 到why to do。先學會如何使用中介軟體,到後面慢慢去體會中介軟體原理及精髓,然後到最後自己再搭建一個簡單的中介軟體框架。這是該分類的

Objective C 學習心得 (一)--Windows搭建objective C開發環境

      最近打算針對iPhone、iPod touch和iPad開發一些應用,所以,需要開始學習Objective C(蘋果推出的類似C語言的開發語言)。由於蘋果的自我封閉的產業鏈發展模式(從晶片、機器、開發語言、終端產品、服務)的限制,要想開發針對蘋果iPhone等產品

caffe學習筆記windows配置caffe問題

      按照https://blog.csdn.net/whu_gcoder_2017/article/details/71479944上的教程 從github上下載了caffe包 安裝了vs2013 編譯專案nuget的時候遇到了問題

1.新手上路Windows配置Qt環境

個人體會: 我最初只是想看看C++除了"黑視窗"之外,怎麼才能做一些"更好看的東西"。之後在網上看到有人推薦Qt,就看了一下官網(https://www.qt.io/,確實挺好看的...),於是準備試試。 那麼問題來了...怎麼寫Qt程式呢?我第一時間想到我需要一個IDE,於是找到了Qt Creato

h5 學習筆記記錄一些前端到後臺和移動樣式庫

這幾天一直在找一些移動和業務樣式庫,發現了不少不錯的,既是漂亮又符合業務用到。 前端發展真的變化很快,發現市面上還是有不少開源好用的產品。針對後臺研發的,有阿里ant design、阿里通訊的,還有餓了麼,京東,有贊等等一些庫。我比較喜歡ant design裡面

sql學習筆記基礎語法連線建立庫表

#連線庫,設定好環境變數或者右鍵powershell . mysql -u 使用者名稱 -p 密碼 #檢視庫 show databases; #建立庫 create database 庫名 charset utf8;#宣告使用字元 #選擇庫 use 庫名;

spark機器學習筆記(三)Spark Python構建推薦系統

輸出結果: [[Rating(user=789, product=1012, rating=4.0), Rating(user=789, product=127, rating=5.0), Rating(user=789, product=475, rating=5.0), Rating(us

python學習筆記集合set函式基礎

1、遍歷字典     for k,v in d:     則k,v分別是字典中鍵值對的鍵和值 2、字典的推導式     比如d = {x:x**2 for x in range(10)}  &nb

學習筆記Android SQLite並實現SQLite基本CRUD操作的Demo

package com.steven.mydatabasetest; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; im

【Docker】Docker學習筆記(1)-Windows的配置與安裝

第一次接觸Docker是15年夏天,那時候在七牛學習Go語言,周圍的大牛們突然提到Docker容器這個東西,而且非常火爆~直到一年多後才想起來要學習一下Docker到底是個什麼東西(我真是怠惰啊),廢話不多說,開始正文。 配置Hyper-V環境並安裝Doc

Puppet4學習筆記RHEL7安裝puppet4.3

最近在研究自動化運維工具,發現網上關於Puppet的文章都太老了參考意義不太大。官方已經更新到Puppet4.X,不少東西都變了,配置檔案也有變化,遂寫下此學習筆記,供分享學習。一、介紹 Puppet

windowseclipse連線虛擬機器中的hadoop

1. 前言 1.1 目標 具體目標是: 在windows 上能夠使用eclipse連線Centos系統上部署的hadoop進行開發與測試 1.2 軟硬體要求 硬體要求: 三臺普通PC。 當然使用虛擬機器也可以,本環境搭建也是VMWare10虛擬機器上進行的。

spark機器學習筆記(六)Spark Python構建迴歸模型

博主簡介:風雪夜歸子(英文名:Allen),機器學習演算法攻城獅,喜愛鑽研Meachine Learning的黑科技,對Deep Learning和Artificial Intelligence充滿興趣,經常關注Kaggle資料探勘競賽平臺,對資料、Machi

spark機器學習筆記(二)Spark Python進行資料處理和特徵提取

下面用“|”字元來分隔各行資料。這將生成一個RDD,其中每一個記錄對應一個Python列表,各列表由使用者ID(user ID)、年齡(age)、性別(gender)、職業(occupation)和郵編(ZIP code)五個屬性構成。4之後再統計使用者、性別、職業和郵編的數目。這可通過如下程式碼

Django學習筆記使用模板通過html頁面代替字串

1.在應用sign/目錄下建立templates/index.html檔案。以下是pycharm開發工具建立資料夾及檔案的截圖。 (Django預設查詢templates/目錄下的HTML檔案,不要隨便命名該目錄名!) 2.編寫index.html檔案內容 3.修改views.py中的i

spark機器學習筆記(四)Spark Python構建分類模型(上)

因此,當 wTx的估計值大於等於閾值0時,SVM對資料點標記為1,否則標記為0(其中閾值是SVM可以自適應的模型引數)。 SVM的損失函式被稱為合頁損失,定義為:                                                        

TensorFlow學習筆記1-Windows通過Anaconda安裝TensorFlow及Spyder編譯器

此文是本人在windows安裝tensorflow看到最準確最全的資料,貼在這裡留存。同時,安裝過程中還參考了這個博文:http://blog.csdn.net/ztf312/article/details/56018891 另外,按照作者的方法安裝後,需要在tensor

Ipopt使用筆記windows的安裝

需要安裝的軟體: 1. MSVC 2. Intel fortran  在windows7系統安裝Ipopt 1. 下載原始碼。 在目標資料夾右鍵,選擇tortoiseSVN/checkout。網址為:https://projects.coin-or.org/svn/Ip

【Linux學習筆記】Centos7上yum安裝tomcat

關於安裝tomcat的方法,網上能搜到大量文章是下載壓縮包的方法的,但總覺得用yum安裝更正統,也更簡單。 步驟記錄如下: 安裝相關軟體: yum install java -y yum install tomcat -y yum install tomcat-web