windows 与 linux 多线程对应函数

对象 操作 Linux Pthread API Windows SDK 库对应 API
线程 创建 pthread_create CreateThread
退出 pthread_exit ThreadExit
等待 pthread_join WaitForSingleObject
互斥锁 创建 pthread_mutex_init CreateMutex
销毁 pthread_mutex_destroy CloseHandle
加锁 pthread_mutex_lock WaitForSingleObject
解锁 pthread_mutex_unlock ReleaseMutex
条件 创建 pthread_cond_init CreateEvent
销毁 pthread_cond_destroy CloseHandle
触发 pthread_cond_signal SetEvent
广播 pthread_cond_broadcast SetEvent / ResetEvent
等待 pthread_cond_wait / pthread_cond_timedwait SingleObjectAndWait

生产者消费者

http://blog.csdn.net/hudashi/article/details/7709421

时间: 2024-08-06 03:40:21

windows 与 linux 多线程对应函数的相关文章

windows 和 linux 多线程

学习了几天多线程技术,做个总结,便于记忆. 一般 多线程传递参数 为 void*  所以会有一个强制转换过程  (int*) (void *)等,传递多个参数选择 结构体指针.为了避免多个线程访问数据冲突 会有一个 叫做  "临界区"CRITICALSECTION" 类 ,防止读写数据冲突, 大概流程是: CRITICAL_SECTION cs; init CS(cs); the one process enter CS ..... leaveCS DELETE(cs); 在

windows和linux/unix多线程的区别

有一面试被问到了windows和linux多线程的区别,特地整理一下,内容全来自网络,如有错误请指正! (1)WIN32里的进程/线程是继承自OS/2的.在WIN32里,“进程”是指一个程序,一般指一个软件,例如Chrome浏览器,但是Chrome会生成好几个后台进程(为了抢占cpu?),一个进程里包含多个线程,用来执行不同的任务,例如Chrome各个不同网页的刷新.WIN32里同一个进程里各个线程之间是共享数据段的,这是与linux系统重要的不同. (2)但是linux系统几乎可以说是没有线程

[转帖]Windows和Linux对决(多进程多线程)

Windows和Linux对决(多进程多线程) https://blog.csdn.net/world_2015/article/details/44920467 太长了 还没看完.. 还是没太理解好呢.. 关于 windows 和 linux的东西 先放这里 晚上有时间仔细啃一下. 并行程序设计分为共享内存和消息驱动(其实就是分布式内存)两种, 共享内存:所有CPU共内存,所有CPU由一个操作系统控制的,例如Windows和Linux/UNIX,目前流行的多核.多CPU机器都是属于这种: 消息

[笔记]linux下和windows下的 创建线程函数

linux下和windows下的 创建线程函数 1 #ifdef __GNUC__ 2 //Linux 3 #include <pthread.h> 4 #define CreateThreadEx(tid,threadFun,args) pthread_create(tid, 0, threadFun, args) 5 #define CloseHandle(ph) 6 7 int pthread_create( 8 //指向线程标识符的指针. 9 pthread_t *restrict t

windows和linux套接字中的select机制浅析

先来谈谈为什么会出现select函数,也就是select是解决什么问题的? 平常使用的recv函数时阻塞的,也就是如果没有数据可读,recv就会一直阻塞在那里,这是如果有另外一个连接过来,就得一直等待,这样实时性就不是太好. 这个问题的几个解决方法:1. 使用ioctlsocket函数,将recv函数设置成非阻塞的,这样不管套接字上有没有数据都会立刻返回,可以重复调用recv函数,这种方式叫做轮询(polling),但是这样效率很是问题,因为,大多数时间实际上是无数据可读的,花费时间不断反复执行

socket在windows下和linux下的区别

windows到Linux代码移植遇到的问题 1.一些常用函数的移植 http://www.vckbase.com/document/viewdoc/?id=1586 2.网络 ------ 转载 & 修改(待整理) socket相关程序从windows移植到linux下需要注意的 1)头文件 windows下winsock.h/winsock2.h linux下sys/socket.h 错误处理:errno.h 2)初始化 windows下需要用WSAStartup linux下不需要 3)关

windows和linux进程与线程的理解

对于windows来说,进程和线程的概念都是有着明确定义的,进程的概念对应于一个程序的运行实例(instance),而线程则是程序代码执行的最小单元.也就是说windows对于进程和线程的定义是与经典OS课程中所教授的进程.线程概念相一致的. 提供API,CreateThread()用于建立一个新的线程,传递线程函数的入口地址和调用参数给新建的线程,然后新线程就开始执行了. windows下,一个典型的线程拥有自己的堆栈.寄存器(包括程序计数器PC,用于指向下一条应该执行的指令在内存中的位置),

在windows 与Linux间实现文件传输(C++&amp;C实现)

要实现windows与linux间的文件传输,可以通过socket网络编程来实现. 这次要实现的功能与<Windows下通过socket进行字符串和文件传输>中实现的功能相同,即客户端首先向服务器发送一个字符串,接着发送一个文件:服务器首先接收客户端发送的字符串,作为文件名,接着接收客户端发送的文件并保存到本地. 以window平台程序作为客户端,linux平台的程序作为服务器,并且是在局域网范围内进行文件传输. windows客户端的实现: 客户端程序在VS2012 IDE下编译运行,依旧使

【转】进程间通信方式总结(windows 和linux)

平时看的书很多,了解的也很多,但不喜欢总结,这不昨天面试的时候被问到了进程间通信的方式,因为没有认真总结过,所以昨天答得不是特别好.现在将linux和windows的进程间通信方式好好总结一下. windows的进程间的通信方式有1.文件映射:2. 共享内存(是文件映射的一种特殊情况):3.邮件槽(mailslot)(点对点消息队列); 4.匿名管道:5:命名管道: 6. 剪贴板:7.动态数据交换:8.对象链接与嵌入:9.远程过程调用:10.动态链接库:11.socket:12.WM_COPYD