zoukankan      html  css  js  c++  java
  • pthread_win32下的 pthread_t与posix的pthread_t的不同。

    我以为pthread_win32 完全兼容posix 的pthread呢,结果发现,至少有一个地方不同,pthread_t的类型。

    posix下pthread_t的类型是:

    typedef unsigned long int pthread_t;
    //come from /usr/include/bits/pthread.h
    //用途:pthread_t用于声明线程ID。
    //sizeof (pthread_t) =4;

    而pthread_win32 是:

    /*
     * Generic handle type - intended to extend uniqueness beyond
     * that available with a simple pointer. It should scale for either
     * IA-32 or IA-64.
     */
    typedef struct {
        void * p;                   /* Pointer to actual object */
        unsigned int x;             /* Extra information - reuse count etc */
    } ptw32_handle_t;
    
    typedef ptw32_handle_t pthread_t;

    这样就存在一点不兼容的问题了。

    void * p 可以看做是posix的pthread_t 的 类型,但是多了一个 x,额外的信息,重用计数器。其大小就是4个字节了。

    不知道还有没有其他的不同之处。至少暂时 还是非常好的。

  • 相关阅读:
    FFmpeg(二) 解封装相关函数理解
    Android NDK(一) ndk-build构建工具进行NDK开发
    Android NDK(二) CMake构建工具进行NDK开发
    C++学习笔记二、头文件与源文件
    C++学习笔记一
    JNA的步骤、简单实例以及资料整理
    Java异常总结
    UML-类图
    排序六:希尔排序
    排序四:归并排序--分治法
  • 原文地址:https://www.cnblogs.com/ayanmw/p/2626661.html
Copyright © 2011-2022 走看看