关于多线程的一个问题

ashamwolf 2003-09-29 11:29:31
程序要完成的功能是:
给定一个mac地址,在局域网中查找该mac地址连接到了哪个交换机的哪个端口上。

现在的实现方法是:
对每个交换机建立一个线程进行处理。

问题是:
如果一个线程找到了端口,那么如何从该进程中停止其他进程?

谁能告诉我多谢了!!!
...全文
51 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
CsdnPlayer 2003-10-08
  • 打赏
  • 举报
回复
mark
ashamwolf 2003-09-30
  • 打赏
  • 举报
回复
多谢各位,编译已经通过~,现在先测试一下还有什么错误
fierygnu 2003-09-30
  • 打赏
  • 举报
回复
用make要加在makefile里。

另外用pthread_cancel要慎重。
ashamwolf 2003-09-30
  • 打赏
  • 举报
回复
用make编译该怎么带参数?我用下面的命令还是不行
make mypro -lpthread
jack_ty 2003-09-30
  • 打赏
  • 举报
回复
在编译的时候直接带上参数就行。
用pthread_cancel函数中止某个线程时,在该线程的实现函数中必须先设定该线程是可以被cancel的。
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE,NULL);
pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED,NULL);
ashamwolf 2003-09-30
  • 打赏
  • 举报
回复
用什么语句加?
sizhi 2003-09-30
  • 打赏
  • 举报
回复
axlw(bloodflower) is right:
应该加上多线程库的连接。
blh 2003-09-29
  • 打赏
  • 举报
回复
你是停进程还是亭线程
linaxing 2003-09-29
  • 打赏
  • 举报
回复
1。使用IPC.
2。使用信号。
3。...
axlw 2003-09-29
  • 打赏
  • 举报
回复
-lpthread
ashamwolf 2003-09-29
  • 打赏
  • 举报
回复
谢谢各位,现在碰到一个奇怪的问题,编译的时候提示:
/tmp/ccJ10bAd.o(.text+0x9b8): undefined reference to `pthread_create'
/tmp/ccJ10bAd.o(.text+0xa4a): undefined reference to `pthread_join'
我已经包含了pthread.h,包含语句是#include <pthread.h>。
还要包含其它的什么文件吗??
yuanlei1978113 2003-09-29
  • 打赏
  • 举报
回复
你可以用这个函数来终止其他线程:
你只要给定你要终止的线程号即可。
int pthread_cancel(pthread_t thread);

记着一定要给分,我知道你是披着狼皮的羊心底是善良的!
ashamwolf 2003-09-29
  • 打赏
  • 举报
回复
错了,不好意思,是停线程,也就是从找到端口的线程停止其他线程。

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧