当前位置:  技术问答>linux和unix

请教一个线程参数传递的问题

    来源: 互联网  发布时间:2016-06-11

    本文导语:  #include  ... typedef union {     pthread_mutex_t     pthread_mut;     pthread_cond_t      pthread_cond; } pthread_buffer_fd; ... void * child_pthread_2( pthread_buffer_fd * m2 ) {         pthread_mutex_lock((pthread_buffer_fd *)m2->pthread_mut)...

#include 
...

typedef union {
    pthread_mutex_t     pthread_mut;
    pthread_cond_t      pthread_cond;
} pthread_buffer_fd;

...
void * child_pthread_2( pthread_buffer_fd * m2 )
{
        pthread_mutex_lock((pthread_buffer_fd *)m2->pthread_mut);
        这一行报错:error: cannot convert to a pointer type  warning: passing arg 1 of `pthread_mutex_lock' from incompatible pointer type
        ....
        ret = pthread_cond_signal(m2->pthread_cond);
        这一行报错:error: incompatible type for argument 1 of `pthread_cond_signal'
        ....
        pthread_mutex_unlock(m2->pthread_mut);
        这一样报错:warning: passing arg 1 of `pthread_mutex_unlock' from incompatible pointer type
        ....
        pthread_exit(NULL);
}


void * child_pthread_1( void )
{
        pthread_t p_id_3;
        pthread_t p_id_2;
        pid_t pid1 = 0;
        int ret = 0;

        pthread_buffer_fd ctl_ptr[1 + 1];
        struct timeval now;
        struct timespec timeout;

        pthread_mutex_t mut_read_msg;
        pthread_mutex_t mut_timeout;

        pthread_condattr_t   cond_read_msg_attr;
        pthread_condattr_t   cond_timeout_attr;
        ...
        if ( (ret = pthread_cond_init(&cond_read_msg, &cond_read_msg_attr)) != 0 )
        ...
        ctl_ptr[0].pthread_mut = mut_read_msg;
        ctl_ptr[0].pthread_cond = cond_read_msg;
        ...
        ret = pthread_create( &p_id_2, NULL, ( void * ) child_pthread_2, &mut_timeout);
        ...
        gettimeofday(&now);
        timeout.tv_sec = now.tv_sec + 5;
        timeout.tv_nsec = now.tv_usec * 1000;
        ret = pthread_cond_timewait(&ctl_ptr[0].pthread_cond, &ctl_ptr[0].pthread_mut, &timeout );
        ...
}

|
void thread_fun(void *arg);
pthread_t thread;

int data[10];

pthread_create(&thread,NULL,thread_fun,(void *)data);

这样data就传给arg指针了,之后,你只需要拷贝arg指向的数据,参数就传递成功了啊

    
 
 

您可能感兴趣的文章:

  • 请教:线程中调用一个阻塞的方法后,进程及其它线程会阻塞么?
  • 请教大虾:),获取线程id的问题
  • 请教关于线程以及进程通行问题
  • 请教线程问题
  • 请教多线程优先级问题
  • 请教两个redhat9问题 iis7站长之家
  • 请教:pthread_join( )在等待一个已经退出的线程时为何会导致死锁?
  • 请教多线程程序的内存占用问题
  • 请教Linux下多线程C++编程
  • 请教如何Kill线程?
  • 请教高手,线程问题,怎样暂停或杀掉多线程?
  • 请教:有什么工具可以“看”到系统中正在运行的线程?
  • 请教:多线程使用同一个socket进行数据收发会出现什么问题?
  • 入门,请教线程编程的问题,请各路高手帮帮忙
  • 复杂的线程同步问题,请教高手
  • 请教java线程问题
  • 请教一个pthread线程库的使用的问题
  • 请教大家关于多线程
  • 搞不懂TI的demo的线程命名,请教
  • 急,在线等待!!!请教各位同仁一个多线程的问题??
  • 在java网络编程中,传递数据时,如何把二维数组从客户端传递到服务器端?请教大家,谢了
  • 请教————由servlet如何传递参数给JSP页面???
  • 请教一个在JSP中前后两个页面进行数据传递的问题
  • 请教红帽服务器自动传递远程桌面问题。
  • 请教从SERVLET传递参数到JSP中的中文问题。
  • 请教高手:Jsp在页面间如何传递“数组”?
  • 写一个方法,向它传递一个对象,循环打印出对象层次结构中的所有类?thinking in java里面的一个习题不知道如何做请教高手?
  • shell和c之间的变量传递问题,请教!
  • 有关参数传递错误的问题向各位请教。
  • JSP页面之间如何进行对象序列化传递???请教代码写法.I am online now。
  • 请教CGI程序传递参数问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教这种循环的执行过程
  • 请教两个redhat9问题
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教一个opengl的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3