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

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

  • 相关阅读:
    vue中@事件处理函数的柯里化
    一个例子生动理解js的原型_js的原型prototype和__protopy__区别
    vue3自定义v-model
    js初始化一个特定值的array
    dom的clientHeight、scrollHeight以及offsetHeight
    ts踩坑记录
    常见问题1
    资料share
    几种开放源码的TCPIP协议栈
    阻塞与非阻塞,同步与异步
  • 原文地址:https://www.cnblogs.com/ayanmw/p/2626661.html
Copyright © 2011-2022 走看看