两个线程都通过一个socket进行send是否需要互斥锁?

问题描述

两个线程都通过一个socket进行send是否需要互斥锁?

两个线程都通过一个socket进行send是否需要互斥锁?同理,消息队列是不是也要尼?

解决方案

如果没有出现对同个资源write操作的情况下,是完全可以不适用锁的

解决方案二:

同一个资源?不是啊,socket数全局的,两个线程都进行send数据,也就是写缓冲,如果同时发生的话,会不会出现问题啊!

解决方案三:

需要加锁。不然数据可能会写乱

解决方案四:

最好锁一下 不然如果线程执行时间戳交叉 比如发12345 和 67889 对方可能会收到 1236788945

时间: 2024-10-02 21:19:20

两个线程都通过一个socket进行send是否需要互斥锁?的相关文章

Linux下使用两个线程协作完成一个任务的简易实现

刚解决了之前的那个Linux下Pthread库的问题,这次就来使用两个线程来协作,共同完成一个求和的任务. 打一下基础吧 本次需要使用到的知识点有: lpthread,编译的时候用到,相当于一个声明的效果 pthread_mutex_t 作为一个锁对象而存在 pthread_create,创建一个新线程的函数调用 pthread_t ,线程的类型 代码展示 #include <stdio.h> #include <stdlib.h> //多线程库的引用 #include<pt

两个线程同时操作一个集合,一个线程读,一个线程写。有可能会产生并发问题吗?

问题描述 两个线程同时操作一个集合,一个线程读,一个线程写.有可能会产生并发问题吗? 我下面的代码为啥没有并发问题? 请哪位大神指导下 class Program { public Thread Threadone; public Thread Threadtwo; public event EventHandler EventRun; public static object obj=new object(); ArrayList ListArry = new ArrayList(); pri

android-Android两个子线程同步问题

问题描述 Android两个子线程同步问题 现在Android端有这么一个需求,将Android的屏幕不停地截图然后通过Socket发送,现在希望能将截图和发送分为两个线程,有没有哪位能教教我啊,因为刚做Android没有多久,最好能有一个小Demo讲解一下,例如一边截图,一边保存的Demo,非常感谢; 解决方案 建立一个的消息队列做图片顺序控制和数据缓冲,截图线程截图后把截图(对象或者图片路径)从队尾插入,发送线程从队头取图片,队列满截图线程等待,队列空发送线程等待,设计的时候,应该根据设备的

并发工具类(四)两个线程进行数据交换的Exchanger

简介 Exchanger(交换者)是一个用于线程间协作的工具类.Exchanger用于进行线程间的数据交换.它提供一个同步点,在这个同步点两个线程可以交换彼此的数据.这两个线程通过exchange方法交换数据, 如果第一个线程先执行exchange方法,它会一直等待第二个线程也执行exchange,当两个线程都到达同步点时,这两个线程就可以交换数据,将本线程生产出来的数据传递给对方. Exchanger的应用场景 Exchanger可以用于遗传算法,遗传算法里需要选出两个人作为交配对象,这时候会

iOS两个线程间嵌套发送同步消息

 先上代码,主要逻辑可看注释.最好是直接下载demo再往下看了.demo下载地址:http://download.csdn.net/detail/hursing/5159144 @implementation ViewController #define kLevelsOfNesting 5 NSString *const kParameter = @"Parameter"; NSString *const kRunLoop = @"RunLoop"; - (voi

UNIX环境高级编程:线程同步之互斥锁、读写锁和条件变量

一.使用互斥锁 1.初始化互斥量 pthread_mutex_t mutex =PTHREAD_MUTEX_INITIALIZER;//静态初始化互斥量 int pthread_mutex_init(pthread_mutex_t*mutex,pthread_mutexattr_t*attr);//动态初始化互斥量 int pthread_mutex_destory(pthread_mutex_t*mutex);//撤销互斥量 不能拷贝互斥量变量,但可以拷贝指向互斥量的指针,这样就可以使多个函数

socket-Android Socket通信一样的代买两个Demo为啥 有一个可以用另一个不行?

问题描述 Android Socket通信一样的代买两个Demo为啥 有一个可以用另一个不行? 就是第一socket通信做成了之后我用第二个复制第一个,然后就不能用了. 很简单的demo就是socket通信收发,网上很多例子. 两个都添加了 INTERNET使用权限 解决方案 为啥要复制呢?也可能是只能运行一个呢 解决方案二: IP写对了,还有接收和发送两个端口

socket通信-用vc写一个socket程序 实现两个客户端通过一个服务器的对话

问题描述 用vc写一个socket程序 实现两个客户端通过一个服务器的对话 初学socket 求详细教程,最好有C++源码 感激不尽 解决方案 孙鑫的VC视频教程中就有这样的例子程序,可以参考一下.

ipq pcap-貌似起两个线程,一个用ipq抓包,一个用pcap抓包会出现问题

问题描述 貌似起两个线程,一个用ipq抓包,一个用pcap抓包会出现问题 貌似起两个线程,一个用ipq抓包,一个用pcap抓包会出现问题,会提示ipq_get_msgerr: No such file or directory.有大神能解决下不 解决方案 你加一个同步试试,避免访问冲突