社区
Linux/Unix社区
帖子详情
Unix domain socket可用于同一个进程中的不同线程么?
谭海燕
2012-02-27 09:17:34
准备用Unix domain socket 写点东西。
咨询下,Unix domain socket可以用于同一个进程中的不同线程间发送数据么?
...全文
511
10
打赏
收藏
Unix domain socket可用于同一个进程中的不同线程么?
准备用Unix domain socket 写点东西。 咨询下,Unix domain socket可以用于同一个进程中的不同线程间发送数据么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Liv2005
2012-02-28
打赏
举报
回复
感觉同上,如果要做unix socket要做的话,是可以做的,只不过线程间用这个通信感觉很奇怪...呵呵
不知道LZ的业务是什么,猜测管道应该更合适吧...
Arnold9009
2012-02-28
打赏
举报
回复
Unix domain socket 一般多用于本机不同进程间通信吧
同一进程的不同线程之间,通过管道或者共享内存不是更方便一些么,难道数据量特别大?
justkk
2012-02-28
打赏
举报
回复
一个进程中的两个线程,一个作为服务器,另外一个作为客户端,两者通过Unix domain socket通信?
justkk
2012-02-28
打赏
举报
回复
那应该没问题
也可以考虑使用socketpair()
谭海燕
2012-02-28
打赏
举报
回复
[Quote=引用 6 楼 liv2005 的回复:]
感觉同上,如果要做unix socket要做的话,是可以做的,只不过线程间用这个通信感觉很奇怪...呵呵
不知道LZ的业务是什么,猜测管道应该更合适吧...
[/Quote]
管道其实和unix domain socket差不多。
谭海燕
2012-02-28
打赏
举报
回复
[Quote=引用 4 楼 justkk 的回复:]
一个进程中的两个线程,一个作为服务器,另外一个作为客户端,两者通过Unix domain socket通信?
[/Quote]
对。就是要这么做。综合考虑,unix domain socket最符合我的需求。
谭海燕
2012-02-28
打赏
举报
回复
呵呵。多谢各位的建议。我之所以怎么做,主要是跨语言,C,C++,JAVA, JS通用组件。
qq120848369
2012-02-27
打赏
举报
回复
DOMAIN和SOCKET的区别:
1,SOCKET绑定在IP:PORT上,DOMAIN绑定在PATH上.
2,SOCKET通过connect调用后, 可以由内核分配本地地址, 而DOMAIN不行, 所以DOMAIN的服务端和客户端都要有自己的PATH去绑定. 觉得客户端指定PATH没意义的话可以tmpfile系列函数随机生成即可, 因为它保证生成的文件不存在于文件系统中, 这也是DOMAIN调用BIND对PATH的要求, 即必须不存在.
谭海燕
2012-02-27
打赏
举报
回复
[Quote=引用 1 楼 qq120848369 的回复:]
当然可以, 当作SOCKET用就可以了.
[/Quote]
恩。没怎么去了解过domain socket的原理。如果是tcp的话,肯定是可以的,因为内核会为每个socket随机分配一
个端口号。但是,domain,好像是通过文件,以及文件描述符来识别的。同一个进程内的不同线程,共享文件
描述符。
不知道你何高见。
qq120848369
2012-02-27
打赏
举报
回复
当然可以, 当作SOCKET用就可以了.
Unix
Dom
ain
Socket
和eventfd
本文介绍了Linux开发
中
的
Unix
Dom
ain
Socket
、eventfd和
Socket
Pair三种通信机制。
Unix
Dom
ain
Socket
用于
本地
进程
间通信,高性能且支持多种模式;eventfd是轻量级事件通知机制,开销低;
Socket
Pair适合父子
进程
或
线程
间双向通信。还对比了它们与TCP/UDP
Socket
的差异,并给出组合使用案例及选择依据。
进程
、
线程
、
进程
间通信
Unix
Dom
ain
Socket
s (UDS)
本文介绍了
进程
和
线程
相关知识,包括
进程
模型、状态、实现等,还阐述了
进程
间通信的竞争条件、互斥等概念及
Unix
/Linux系统
中
的多种IPC机制。重点讲解了
Unix
Dom
ain
Socket
s (UDS),包括其适用场景、与普通套接字差异、配置方式及相关函数和结构体。
【
socket
】
unix
域套接字(
socket
pair )通信|
socket
pair和pipe的区别|
进程
间通信-
Unix
dom
ain
socket
本文介绍了
Unix
域套接字(
socket
pair)通信机制,包括其描述、原理,对比了
socket
pair和pipe的区别,指出
socket
pair可直接实现全双工,描述符任意一端可读写。还阐述了基于
socket
框架发展的
UNIX
Dom
ain
Socket
用于
进程
间通信的优势、使用过程及与网络
socket
的
不同
。
UDS(
Unix
Dom
ain
Socket
)用在
线程
间通信Demo
本文介绍了一个使用
Unix
Dom
ain
Socket
(UDS)进行
线程
间通信的Demo,验证了UDS不仅可以
用于
线程
间通信,而且传递的数据是内容的拷贝。通过创建主
线程
作为服务端,子
线程
作为客户端,博主发现即使主
线程
释放了内存,子
线程
仍能访问到数据。这是一个学习和复习操作系统知识的过程。
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章