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

pthread_create所创建的线程中的static变量

    来源: 互联网  发布时间:2015-05-21

    本文导语:  我在一个初始化函数中调用了pthread_create。 void myinit(int port) {    ...    pthread_create(NULL, NULL, thread_recv_task, &type);    ... } 在thread_recv_task中定义了一个static类型的buf,用来接收消息。 void *thread_recv_task(void *pport)...

我在一个初始化函数中调用了pthread_create。
void myinit(int port)
{
   ...
   pthread_create(NULL, NULL, thread_recv_task, &type);
   ...
}

在thread_recv_task中定义了一个static类型的buf,用来接收消息。
void *thread_recv_task(void *pport)
{
   static char *buf = NULL;

   if(buf == NULL)
       buf = (char *)malloc(1024);
   ...
   recvmsg(sk, buf, 1024, ...);
   ...
}

    现在我调用了myinit函数两次(参数port不同),也就创建了两个线程,我调试程序的时候,发现在两个线程中的buf的地址是相同的,请问这样是否会产生什么问题?

|
一条线程写入数据后设置mutex,数据被读出后再取消互斥。
否则数据很可能被冲掉。

不知道你为什么要采用static变量的方式,感觉不太好,
是否可以考虑使用某种方式的IPC来代替?

|
static变量在多线程中需要同步的。
某些函数如localtime不是多线程安全,原因就是使用了static变量。

|
应该看看书,看看static变量的概念

    
 
 

您可能感兴趣的文章:

  • linux下进程和线程的区别(fork(),pthread_create())?
  • 用pthread_create建立线程后如何让线程运行的函数在create完了之后才实际运行 相当与windows下的CREATE_SUSPENDED ??
  • 请问:linux下如何将一个类的指针作为参数传给pthread_create创建的线程?
  • 请问:为什么我在守护进程里面用pthread_create来启动线程,经常会卡在那里阿?
  • pthread_create创建线程问题
  • 为什么pthread_create创建线程出错.有完整代码,哪儿错了,大家给试试.
  • pthread_create()创建一千次以上线程失败!!为什么??请大家帮忙看一下
  • 求助:用pthread_create创建的线程最多为303个,可以更多吗?
  • linux下pthread_create创建线程问题
  • 创建线程函数pthread_create,在c/c++的用法。
  • [请教]pthread_create多线程问题
  • 求救:AIX 4.3上用pthread_create创建线程时居然随机地非法操作?
  • pthread_create 创建线程的时候如何让他先暂停,等我让他运行才运行?
  • pthread_create错误,怎么在C++类中定义线程函数指针
  • 线程控制,但是pthread_create(&pid, NULL, &handle_roution, NULL)更本没走进去????????????
  • pthread_create传给执行函数的变量能不能有多个?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 一个pthread_create 编译出错,是什么原因啊
  • Linux里的pthread_create会不会阻塞啊?
  • 关于pthread_create函数的问题
  • pthread_create的问题
  • pthread_create函数执行问题
  • 为什么pthread_create`编译通不过
  • 包含了#include <pthread.h>,为什么还有pthread_create错误?
  • 无法使用pthread_creat()函数的问题
  • 有关使用pthread_creat时的参数传递问题!!!
  • pthread_create 的问题 ,求救大家!!!
  • pthread_create函数编译时报错?
  • REDHAT7.2提示:undefined reference to "pthread_create"
  • pthread_create 为何报 Segmentation fault?
  • pthread_create编译错误
  • ★pthread_create 与 thr_create的区别是什么?★
  • 求助!!undefined reference to 'pthread_create'
  • 急!同一个c文件里vfork();pthread_create();两个函数,Makefile该怎么写?谢谢
  • 在LINUX GCC 编译错误 UnDefined reference to "pthread_creat"
  • No manual entry for pthread_create,我安了manpages-dev和glibc-doc
  • pthread_create函数返回值问题


  • 站内导航:


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

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

    浙ICP备11055608号-3