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

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

  • 相关阅读:
    修改RedHat7的root用户密码
    Linux目录,rpm及top,vi命令简记
    Centos7或RedHat7下安装Mysql
    异常、线程
    File类
    JDBC的学习(一)
    MySql多表查询_事务_DCL(资料三)
    MySql约束_设计_备份还原(资料二)
    MySql基础_DDL_DML_DQL(资料一)
    算法小结(一)
  • 原文地址:https://www.cnblogs.com/ayanmw/p/2626661.html
Copyright © 2011-2022 走看看