当前位置: 技术问答>linux和unix
高手请进,关于多线程的问题,急
来源: 互联网 发布时间:2016-07-23
本文导语: 为什么同样的代码,在环境Linux version 2.6.18-128.el5xen (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) 中能正常运行 而在环境Linux version 2.6.28-11-server (buildd@crested) (gcc version 4.3.3 (Ubuntu 4.3.3...
为什么同样的代码,在环境Linux version 2.6.18-128.el5xen (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) 中能正常运行
而在环境Linux version 2.6.28-11-server (buildd@crested) (gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) ) #42-Ubuntu中就在运行中报错。具体就是在运行到pthread_detach(pthread_self())这里时报段错误。
1、我的程序就是在同一个机器上运行一个客户端、一个服务端,服务端监听,如果有客户端连接则新建一个线程来处理信息,并与客户端交互信息。
2、我另外写了一个简单的多线程测试程序,就是创建一个新线程,然后包含pthread_detach(pthread_self()),能够在环境2中正常运行。
是不是gcc版本不同导致的错误?还是ubuntu上不支持本机的线程通讯?。。。
而在环境Linux version 2.6.28-11-server (buildd@crested) (gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) ) #42-Ubuntu中就在运行中报错。具体就是在运行到pthread_detach(pthread_self())这里时报段错误。
1、我的程序就是在同一个机器上运行一个客户端、一个服务端,服务端监听,如果有客户端连接则新建一个线程来处理信息,并与客户端交互信息。
2、我另外写了一个简单的多线程测试程序,就是创建一个新线程,然后包含pthread_detach(pthread_self()),能够在环境2中正常运行。
是不是gcc版本不同导致的错误?还是ubuntu上不支持本机的线程通讯?。。。
|
能不能把代码贴出来看看 也许是系统不兼容的问题 我只是知道ubuntu和FC10都有区别的 也是个小地方,我以前发现的
|
从你的描述来看,并不是那个
pthread_detach(pthread_self()) 函数的问题,
应该是你的程序处理上的问题,至于为什么两个平台表现的不一致,那可能是编译器处理方法不一样。
你最好仔细看看警告提示,有些警告提示可能暗示着一些潜在的运行错误
pthread_detach(pthread_self()) 函数的问题,
应该是你的程序处理上的问题,至于为什么两个平台表现的不一致,那可能是编译器处理方法不一样。
你最好仔细看看警告提示,有些警告提示可能暗示着一些潜在的运行错误
|
宝马兄弟说的好 有的时候不同编译器会有差别
|
pthread_detach( pthread_self() );//段错误
估计用到的库没链接到,所以找不到函数或变量的具体位置。
估计用到的库没链接到,所以找不到函数或变量的具体位置。