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

pthread创建线程传递参数的问题

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

    本文导语:  #include "lthread.h" #include  void *clientService(int *socket) {     printf("Server thread started!%dn",(int)socket); } int clientThread::creatSevThread(int h_socket) {     m_socket=h_socket;     pthread_create(&m_clientThread,NULL,clientService,&t); } 我用这段代码...


#include "lthread.h"
#include 

void *clientService(int *socket)
{
    printf("Server thread started!%dn",(int)socket);
}

int clientThread::creatSevThread(int h_socket)
{
    m_socket=h_socket;
    pthread_create(&m_clientThread,NULL,clientService,&t);
}



我用这段代码创建线程时编译提示错误,怎么解决?我看论坛里面这样做都可以,这是为什么??
错误:

lthread.cpp: In member function ‘int clientThread::creatSevThread(int)’:
lthread.cpp:19: 错误:从类型‘void* (*)(int*)’到类型‘void* (*)(void*)’的转换无效
lthread.cpp:19: 错误:  初始化‘int pthread_create(pthread_t*, const pthread_attr_t*, void* (*)(void*), void*)’的实参 3

|

#include "lthread.h"
#include 

void *clientService(void *socket)
{
    printf("Server thread started!%dn",(int)socket);
}

int clientThread::creatSevThread(int h_socket)
{
    m_socket=h_socket;
    pthread_create(&m_clientThread,NULL,clientService,&t);


把那个 int 改成 void 就成了。


|
void *clientService(void *socket)
{
    printf("Server thread started!%dn",*((int*)socket));
}

你打印的是地址, 不是内容,所以地址是一定会变的。 你用上面的代码看看。

|
楼上的帮你解决了 我来蹭点分 嘿嘿

|

变了就变了贝。有什么关系。

你只是输出了socket的内存地址而已,在我看来没有任何意义的一个值。

    
 
 

您可能感兴趣的文章:

  • 先pthread_cancel()再pthread_join(),主线程退出?
  • 大家好,pthread库创建线程,如何等待线程安全退出?
  • 一个线程能用pthread_kill(pid,SIGHUP)将另一个线程挂起么?
  • 问一个关于pthread线程删除(取消)的问题
  • 跪求:linux下pthread 双线程计算和单线程的运行时间完全相同是为什么?
  • 请问pthread_mutex_lock()和pthread_mutex_unlock()可不可以用于对不同进程的线程进行同步。
  • Unix中PThread是干什么用的,创建线程吗---小妹
  • 请教:pthread_join( )在等待一个已经退出的线程时为何会导致死锁?
  • 请教一个pthread线程库的使用的问题
  • 问个pthread线程库的问题
  • pthread线程问题
  • 求教,关于pthread_join 以及线程之间关系的问题
  • 用pthread_create建立线程后如何让线程运行的函数在create完了之后才实际运行 相当与windows下的CREATE_SUSPENDED ??
  • 求助!pthread与Win32 API线程库的对应问题
  • 关于线程pthread.h
  • 能不能查看获取pthread_mutex_t的线程id?
  • 请教sleep和pthread_delay_np:阻塞线程/阻塞进程?
  • pthread_cond_timedwait用来让线程睡眠无效?
  • Linux的线程库pthread是否有"亲缘性"的概念?
  • linux下进程和线程的区别(fork(),pthread_create())?
  • 有关使用pthread_creat时的参数传递问题!!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问:linux下如何将一个类的指针作为参数传给pthread_create创建的线程?
  • 为什么pthread_create创建线程出错.有完整代码,哪儿错了,大家给试试.
  • 创建线程函数pthread_create,在c/c++的用法。
  • pthread_create创建线程问题
  • pthread_create所创建的线程中的static变量
  • 求助:用pthread_create创建的线程最多为303个,可以更多吗?
  • linux下pthread_create创建线程问题
  • 求救:AIX 4.3上用pthread_create创建线程时居然随机地非法操作?
  • 请问:pthread的创建好像有内存泄露 还有多平台判断
  • pthread_create 创建线程的时候如何让他先暂停,等我让他运行才运行?
  • unix/Linux下c/c++ pthread库读写锁函数介绍
  • unix/linux知识 iis7站长之家
  • pthread_attr_init()及pthread_cond_wait使用疑惑
  • pthread_cond_signal和pthread_cond_wait两个函数是怎么意思?
  • 包含了#include <pthread.h>,为什么还有pthread_create错误?
  • 请问一下红色字体处的区别,及pthread_self()和pthread_creat()函数第一个参数的区别?
  • pthread_cond_wait 之前的 pthread_mutex_lock 语句 有什么作用,可以不用吗?
  • pthread_cancel和pthread_cond_wait
  • pthread_cond_t和pthread_mutex_t的疑问?
  • pthread_cond_t进入等待状态,则pthread_mutex_t无效...
  • LINUX关于pthread_create 和pthread_join
  • Pthread
  • pthread_create成功返回,但pthread_kill(thrdid, 0)返回说进程不存在?
  • pthread 阻塞问题
  • pthread_cond_timedwait用法
  • linux下运行pthread库出错的问题
  • 为什么我在man中查不到有关pthread的帮助?
  • 一个pthread_create 编译出错,是什么原因啊
  • 关于man关于pthread
  • 在调用pthread_testcancel时要采用这样的方式???
  • pthread_mutex_destroy()调用失败的原因


  • 站内导航:


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

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

    浙ICP备11055608号-3