Windows下使用Dev-C++开发基于pthread.h的多线程程序

简介:

一、下载Windows版本的pthread

    目前最新版本是:pthreads-w32-2-9-1-release.zip

 

二、解压pthread到指定目录

     我选择的目录是:E:\DEV-CPP\Pthread
     完成后,该目录会多出三个文件夹:Pre-built.2,pthreads.2,QueueUserAPCEx。
 
三、配置Dev-C++编译选项
  
    1)点击“工具”→“编译选项”→“目录”→“c++包含文件”,浏览到刚才解压的pthread目录,选择E:\DEV-CPP\Pthread\Pre-built.2\include,添加。 
Windows下使用Dev-C++开发基于pthread.h的多线程程序 - Einstein - 似水流年

    2)点击“工具”→“编译选项”→“目录”→“库”,浏览到刚才解压的pthread目录,选择E:\DEV-CPP\Pthread\Pre-built.2\lib,添加。
Windows下使用Dev-C++开发基于pthread.h的多线程程序 - Einstein - 似水流年 
 
四、如果出现“undefined reference to 'pthread_create”的错误,在编译器选项中要加 -lpthread参数
 
 
 
 
 
五、最后附上一个简单的多线程的例子

#include <iostream>  
#include <pthread.h>   
#include<cstdio>
using namespace std;  
  
void* hjzgg(void* arg)  
{  
    while(1){
        cout<<"Hello, everyone! I am hjzgg!"<<endl;  
        getchar();
    }
    return NULL;
}  
  
int main(int args, char* argv[])  
{  
    pthread_t tid;  
    pthread_create(&tid, NULL, hjzgg, NULL);     
    while(1);//主线程不要提前结束 
    return 0;    
}

目录
相关文章
|
1月前
|
调度 Windows
|
5月前
|
监控 安全 API
6.9 Windows驱动开发:内核枚举进线程ObCall回调
在笔者上一篇文章`《内核枚举Registry注册表回调》`中我们通过特征码定位实现了对注册表回调的枚举,本篇文章`LyShark`将教大家如何枚举系统中的`ProcessObCall`进程回调以及`ThreadObCall`线程回调,之所以放在一起来讲解是因为这两中回调在枚举是都需要使用通用结构体`_OB_CALLBACK`以及`_OBJECT_TYPE`所以放在一起来讲解最好不过。
52 1
6.9 Windows驱动开发:内核枚举进线程ObCall回调
|
5月前
|
网络协议 安全 API
9.9 Windows驱动开发:内核远程线程实现DLL注入
在笔者上一篇文章`《内核RIP劫持实现DLL注入》`介绍了通过劫持RIP指针控制程序执行流实现插入DLL的目的,本章将继续探索全新的注入方式,通过`NtCreateThreadEx`这个内核函数实现注入DLL的目的,需要注意的是该函数在微软系统中未被导出使用时需要首先得到该函数的入口地址,`NtCreateThreadEx`函数最终会调用`ZwCreateThread`,本章在寻找函数的方式上有所不同,前一章通过内存定位的方法得到所需地址,本章则是通过解析导出表实现。
81 0
9.9 Windows驱动开发:内核远程线程实现DLL注入
|
5月前
|
监控 安全 API
7.1 Windows驱动开发:内核监控进程与线程回调
在前面的文章中`LyShark`一直在重复的实现对系统底层模块的枚举,今天我们将展开一个新的话题,内核监控,我们以`监控进程线程`创建为例,在`Win10`系统中监控进程与线程可以使用微软提供给我们的两个新函数来实现,此类函数的原理是创建一个回调事件,当有进程或线程被创建或者注销时,系统会通过回调机制将该进程相关信息优先返回给我们自己的函数待处理结束后再转向系统层。
63 0
7.1 Windows驱动开发:内核监控进程与线程回调
|
5月前
|
监控 Windows
4.4 Windows驱动开发:内核监控进程与线程创建
当你需要在Windows操作系统中监控进程的启动和退出时,可以使用`PsSetCreateProcessNotifyRoutineEx`函数来创建一个`MyCreateProcessNotifyEx`回调函数,该回调函数将在每个进程的创建和退出时被调用。PsSetCreateProcessNotifyRoutineEx 用于在系统启动后向内核注册一个回调函数,以监视新进程的创建和退出,
42 0
4.4 Windows驱动开发:内核监控进程与线程创建
|
5月前
|
监控 安全 Windows
4.3 Windows驱动开发:监控进程与线程对象操作
在内核中,可以使用`ObRegisterCallbacks`这个内核回调函数来实现监控进程和线程对象操作。通过注册一个`OB_CALLBACK_REGISTRATION`回调结构体,可以指定所需的回调函数和回调的监控类型。这个回调结构体包含了回调函数和监控的对象类型,还有一个`Altitude`字段,用于指定回调函数的优先级。优先级越高的回调函数会先被调用,如果某个回调函数返回了一个非NULL值,后续的回调函数就不会被调用。当有进程或线程对象创建、删除、复制或重命名时,内核会调用注册的回调函数。回调函数可以访问被监控对象的信息,如句柄、进程ID等,并可以采取相应的操作,如打印日志、记录信息等。
37 0
4.3 Windows驱动开发:监控进程与线程对象操作
|
6月前
|
存储 安全 调度
4.2 Windows驱动开发:内核中进程线程与模块
内核进程线程和模块是操作系统内核中非常重要的概念。它们是操作系统的核心部分,用于管理系统资源和处理系统请求。在驱动安全开发中,理解内核进程线程和模块的概念对于编写安全的内核驱动程序至关重要。内核进程是在操作系统内核中运行的程序。每个进程都有一个唯一的进程标识符(PID),它用于在系统中唯一地标识该进程。在内核中,进程被表示为一个进程控制块(PCB),它包含有关进程的信息,如进程状态、优先级、内存使用情况等。枚举进程可以让我们获取当前系统中所有正在运行的进程的PID和其他有用的信息,以便我们可以监视和管理系统中的进程。
74 0
4.2 Windows驱动开发:内核中进程线程与模块
|
7月前
|
编译器 索引 Windows
[笔记]Windows核心编程《二十一》线程本地存储器TLS
[笔记]Windows核心编程《二十一》线程本地存储器TLS
|
7月前
|
存储 编译器 C++
[笔记]Windows核心编程《十六》线程栈
[笔记]Windows核心编程《十六》线程栈
|
7月前
|
存储 API 调度
[笔记]Windows核心编程《八》用内核对象进行线程同步
[笔记]Windows核心编程《八》用内核对象进行线程同步