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个字节了。

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

  • 相关阅读:
    腾讯微博
    城市左右选择添加按钮案例
    jQuery元素操作1
    动态创建表格
    五角星评论案例
    点击图片箭头回到顶部案例
    HDU1506: Largest Rectangle in a Histogram(最大子矩阵,好题动态优化左右边界)
    HDU1165: Eddy's research II(递推)
    HDU1158:Employment Planning(线性dp)
    HDU1081:To The Max(最大子矩阵,线性DP)
  • 原文地址:https://www.cnblogs.com/ayanmw/p/2626661.html
Copyright © 2011-2022 走看看