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

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

  • 相关阅读:
    hadoop节点的增删
    hadoop集群搭建
    主从配置
    CentOS7ssh互信
    Java根据视频的URL地址,获取视频时长
    Mybatis-plus使用@Select注解使用IN查询不出数据的问题
    洗牌算法
    1525
    SpringBoot+Quartz+MySQL实现分布式定时任务
    微信小程序授权登录解密失败问题
  • 原文地址:https://www.cnblogs.com/ayanmw/p/2626661.html
Copyright © 2011-2022 走看看