首页 文章
  • 2 votes
     answers
     views

    python阻塞套接字,立即发送返回

    我正在使用套接字模块在Python中编写多线程套接字应用程序 . 服务器侦听连接,当它获得连接时,它会为该套接字生成一个线程 . 服务器线程将一些数据发送到客户端 . 但客户尚未准备好接收它 . 我认为这会导致服务器等到客户端启动recv但是立即返回 然后客户端调用阻塞的recv,并且不会收到任何数据 . 客户端套接字构造函数 self.__clientSocket = socket.socket...
  • 5 votes
     answers
     views

    如何阻止在Ruby中读取命名管道?

    我正在尝试设置一个Ruby脚本,该脚本从循环中的命名管道读取,阻塞直到管道中的输入可用 . 我有一个进程,定期将调试事件放入命名管道: # Open the logging pipe log = File.open("log_pipe", "w+") #'log_pipe' created in shell using mkfifo ... # An int...
  • 0 votes
     answers
     views

    清空BufferedReader的缓冲区

    如何在java中清空BufferedReader的缓冲区? 我有以下代码创建一个服务器的套接字并声明 in 和 out . public class CaspSocket { private Socket socket = null; private PrintWriter out = null; private BufferedReader in = null; ...
  • 99 votes
     answers
     views

    非阻塞I / O真的比多线程阻塞I / O快吗?怎么样?

    我在网上搜索了一些关于阻止I / O和非阻塞I / O的技术细节,我发现有几个人说非阻塞I / O比阻塞I / O更快 . 例如this document . 如果我使用阻塞I / O,那么当然阻塞的线程当然不会做任何其他事情......因为它被阻止了 . 但是一旦一个线程开始被阻塞,操作系统就可以切换到另一个线程而不会切换回来,直到阻塞线程有事情要做 . 因此,只要系统上有另一个需要CPU并且没...
  • 2 votes
     answers
     views

    所有被空管阻塞的线程都读了

    我正在尝试自学C(Linux)中的多线程和多进程编程 . 我写了一个简短的程序,它生成一个新的线程,该程序进入一个例程,试图从空FIFO中进行阻塞读取,而主线程继续并打印到STDOUT . (注意:在执行程序之前,我确实在终端中使用 mkfifo newfifo 创建了一个FIFO) 我期待程序打印到屏幕“主线程”,然后在等待我将数据放入FIFO时阻塞 . 相反,整个过程被阻止,并且只有在我将数...
  • 0 votes
     answers
     views

    无论如何要检测线程方法是否已完成

    我有一个队列,它基本上是albahari.com线程书中的 生产环境 者/消费者队列,它从队列中取出一个队列项,这是队列中的一个动作执行块,然后调用一个方法来执行动作列表在队列项目中 . 通过使用thread.sleep()进行旋转/等待直到队列计数变为零,并且所有线程都通过while!= null循环,我可以通过对null动作块进行排队并阻止主线程来轻松地终止队列从而完成,但执行最后一个动作列表...
  • 5 votes
     answers
     views

    在用于暂停线程时,循环Thread.Sleep()会不会对性能造成影响?

    有(或者已经有)很多关于使用 Thread.Sleep() 方法的好坏的讨论 . 据我所知,它主要用于调试目的 . 现在我想知道:用于我的特定目的是不是很糟糕,也就是说,不断循环它以便能够暂停/恢复线程?我这样做是因为我想暂停一个执行I / O操作的线程,并能够以一种简单的方式恢复它 . I / O操作基本上只是将4096字节的块写入文件,直到所有数据都写入其中 . 由于文件可能很大并且需要很长时...
  • 0 votes
     answers
     views

    如何在debian上阻止内部硬盘?

    当我用USB记忆棒启动Debian时,如何阻止内部硬盘? 如果我使用我创建的ISO启动,我有Debian系统,但我可以访问我正常的Win7分区 . 我想在使用USB live Debian stick启动时拒绝访问我的Win7硬盘 .
  • 4 votes
     answers
     views

    套接字关闭后c linux accept()阻塞

    我有一个侦听新连接的线程 new_fd = accept(Listen_fd, (struct sockaddr *) & their_addr, &sin_size); 和另一个在关闭程序时关闭Listen_fd的线程 . 然而,在Listen_fd关闭后,它仍然会阻塞 . 当我使用GDB尝试和调试时,accept()不会阻塞 . 我认为这可能是SO_LINGER的问题,但默认...
  • 0 votes
     answers
     views

    UnrealEngine4:当TCP服务器关闭时,Recv函数会一直阻塞

    我在客户端使用 blocking FSocket 连接到tcp服务器,如果没有来自服务器的消息,套接字线程将在函数 FScoket::Recv() 中阻塞,如果TCP服务器关闭,套接字线程仍然在此函数中阻塞 . 但是当使用 BSD Socket API 的阻塞套接字时,线程将从 recv 函数传递并在TCP服务器关闭时返回 errno ,那么它是否是FSocket的缺陷? uint32 HRecv...
  • 4 votes
     answers
     views

    如何等待工作人员清空阻塞队列

    我正在使用具有阻塞队列的单个 生产环境 者 - 单一消费者模型 . 我希望 生产环境 者在 生产环境 完成后,等待队列在返回之前清空 . 我实施了Marc Gravell建议的BlockingQueue here . 在我的模型中, 生产环境 者(渲染器)正在使用事件来通知工作者(打印机)何时正在呈现文件(工作人员对项目进行排队)以及何时呈现(完成)每个文件 . 现在,当渲染器完成时,方法结束并且...
  • 4 votes
     answers
     views

    什么时候会阻塞socket.send()阻塞? (UDP)

    我一直在阅读python中的UDP套接字 . 默认情况下,配置套接字以便发送或接收数据块,停止程序执行直到套接字准备就绪 . 调用send()等待缓冲区空间可用于传出数据,并调用recv()等待另一个程序发送可读取的数据 . 我理解接收部分,它必须等到另一端发送 . 但为什么发送阻止?它在书中说:“send()等待缓冲区空间可用” . 什么是缓冲空间? 它是针对整个操作系统还是针对每个运行的应...
  • 1 votes
     answers
     views

    如何在Python中阻止在命名管道上阻塞的线程?

    我有一个子类 threading.Thread 的类 . 唯一的责任是将从UNIX命名管道读取的消息放入 queue.Queue 对象(以便其他线程可以在以后处理这些值) . 示例代码: class PipeReaderThread(Thread): def __init__(self, results_queue, pipe_path): Thread.__init__(...
  • -1 votes
     answers
     views

    service方法调用不同步

    我有一个OrderServer类,我调用的服务OrderService连接到DB并获取数据 . 数据收集每1分钟进行一次 . OrderServer使用SocketIO与webapp通信 . 代码如下: export class OrderServer { // some required fields constructor() { console.log(&quot...
  • 2 votes
     answers
     views

    使用asyncio进行PIL和阻止调用

    我有一个asyncio应用程序使用 aiohttp 的服务器和 asyncio.open_connection() 的异步套接字 我的代码包含来自PIL库的一些阻塞调用 Image.save() Image.resize() 即使呼叫没有阻塞太长时间,但是,如果我使用这些阻止呼叫,我的网络服务器是否会冻结?更确切地说,由于阻塞代码,事件循环是否可能会丢失事件? 如果是,那些与asynci...
  • 2 votes
     answers
     views

    Winsock send()阻止服务器?

    我已经读过Winsock上的send()函数阻塞,直到收到最后一个数据包的ACK . 现在我正在玩一个基于回合制角色扮演游戏的服务器 . 一切都由一个线程处理(对于64个套接字) . 收到请求,处理请求并将响应写入套接字 . 这个过程不能中断 . 是否可以使用此方法处理1000个客户端(每64个套接字一个线程)? 如果send()完成时间过长或客户端恶意发送ACK或连接中断,它是否会阻止整个服务器...
  • 3 votes
     answers
     views

    在未来阻止仍然阻塞?

    阻止坏,异步好,但在未来阻止仍然阻塞?这是我不断回归的事情;考虑遵循伪代码: def queryName(id:Id):Future[String] def queryEveryonesNames:Future[Seq[String]] = { val everyonesIds:Future[Seq[Id]] = getIds val everyonesNames:Future[Seq[F...
  • 11 votes
     answers
     views

    为什么新线程而不是未来{...}

    This answer指示如何将 java.util.concurrent.Future 转换为 scala.concurrent.Future ,同时管理阻塞将发生的位置: import java.util.concurrent.{Future => JFuture} import scala.concurrent.{Future => SFuture} val jfuture: ...
  • 1 votes
     answers
     views

    flatMap期货列表的期货正在进行阻止操作,那么为什么不将代码括在阻塞{...}中呢?

    通过Reactive Programming上的Coursera课程中的一些练习和视频,我看到了一种方法的定义,以期待未来的方法 . 该方法返回 Future ,它将在 fts (见下面的代码)中等待所有期货的工作,并将这些结果打包成 List[T] ,当序列返回的 Future[List[T]] 完成时,这些结果将可用 . def sequence[T](fts: List[Future[T]]...
  • 0 votes
     answers
     views

    Scala Future使用多个Await.result()调用阻塞

    我不明白为什么这个来自here的例子是阻塞的 import java.util.concurrent.Executors import scala.concurrent._ import scala.concurrent.duration.Duration object Main { def main(args: Array[String]) { println("Star...
  • 1 votes
     answers
     views

    python3 asyncio ZeroMQ .connect()块

    我尝试使用python3 asyncio和ZeroMQ实现 REQ/REP 模式 我的客户端异步功能: import zmq import os from time import time import asyncio import zmq.asyncio print ('Client %i'%os.getpid()) context = zmq.asyncio.Context(1) lo...
  • 0 votes
     answers
     views

    Python chatserver - 由于阻塞调用而无法关闭服务器

    我正在用Python编写一个聊天服务器来进行分配 . 但是,我在关闭服务器时遇到问题 . 这是发生了什么: 当客户端连接时,我产生了两个线程: readThread 和 writeThread . readThread 负责从客户端读取数据并将其打印到 stdout , writeThread 负责从 stdin 读取消息并将其发送到客户端 . 当客户端发送 'EXIT' 时,我想关闭服务器...
  • 1 votes
     answers
     views

    Angular Cli-在StyleURL中添加一个位于node_module目录中的css文件

    我正在使用Angular-Cli运行我的前端应用程序 . 我想将 node_module 中的css文件仅添加到该特定组件 . 我不想将CSS文件添加到Angular.cli.json "scripts": [] 数组中, 我有以下组件: import {Component, OnInit} from '@angular/core'; @Component({ ...
  • 0 votes
     answers
     views

    快速并发Http请求

    用户可以触发多个并发HTTP请求来表达服务器 . 在服务器端,我想阻止除第一个请求(对于该特定用户)之外的所有并发请求,然后执行一些操作并逐个取消阻止其他请求 . 用户的请求不应被其他用户的请求阻止 . 如何在nodejs中实现这一点?可以通过授权标头识别(唯一)用户的请求 . 谢谢
  • 0 votes
     answers
     views

    未来{blocking {created new Future {}}} - 嵌套期货会阻止父母一个人

    我试图在实际代码中模拟我的情况 . 用例很简单:有: Future {blocking { // in there it calls nested futures }} 更详细的(全局执行上下文用作父级,但有一个尝试使用separete one for children): object ExContexts { val main = scala.concurrent.Ex...
  • 0 votes
     answers
     views

    当池填满时,池中的theads进入阻塞状态

    我有一个线程池大小为20的应用程序,每当池中的所有线程都耗尽时,线程就会永远进入阻塞状态,从根本上消除应用程序 . 池部分填充时应用程序正常工作 . 线程转储显示线程在运行异步可调用时被阻止,并且没有关于可调用位置的任何堆栈信息 . 我应该怎么看才能找出线程填满时线程进入阻塞状态的原因 . 转储还说没有检测到死锁 . 我使用 Actuator 服务进行线程管理 . Threaddump: Thre...
  • 0 votes
     answers
     views

    套接字缓冲区 - recv()

    试图了解阻塞套接字recv() . 阻止在客户端应用程序中实现的套接字并连接到服务器 . 服务器应用程序中实现的IOCP非阻塞套接字 . 客户端应用程序发送一些请求,服务器响应肯定或否定回复 . 有时服务器中的处理时间在同一毫秒内 . 一旦收到请求服务器应用程序立即响应 . 处理大约400个请求/响应时,服务器应用程序以相同的毫秒响应,但客户端应用程序在5秒后收到 . 时间延迟 . 我们尝试使用w...
  • 0 votes
     answers
     views

    为什么来自套接字的recv()不会阻塞

    我创建一个TCP服务器套接字,侦听connect()请求和accept()它们 . 接受客户端套接字后,从中接收数据 . 我希望recv()函数以超时阻塞,但它似乎是非阻塞的 . 我从服务器接收响应时已经使客户端处于阻塞模式,但它似乎与服务器端的工作方式不同 . 下面我在阻塞模式下复制粘贴我想要接收数据的服务器端: int clientSocket = accept(_serverSocket, ...
  • 0 votes
     answers
     views

    套接字recv(阻塞)因errno EAGAIN而失败 - 资源暂时不可用

    我正在实现一个UNIX域套接字Inter Process通信代码,我试图从套接字读取时随机点击这个错误 - “错误11:资源暂时不可用” . 我使用MSG_PEEK读取套接字中的字节数,并为接收缓冲区分配字节,并读取实际数据 . 套接字是一个阻塞套接字,我没有任何代码可以进行非阻塞(总之,接受/读/写) . 什么可能导致阻塞套接字读取的指针?从MSG_PEEK的man page开始,当使用O_NO...
  • 129 votes
     answers
     views

    如何中断ServerSocket accept()方法?

    在我的主线程中,我有一个 while(listening) 循环,在我的ServerSocket对象上调用 accept() ,然后启动一个新的客户端线程,并在接受新客户端时将其添加到Collection . 我还有一个Admin线程,我想用它来发出命令,比如'exit',这将导致所有客户端线程被关闭,自行关闭,并通过转向监听来关闭主线程 . 但是, while(listening) 循环中的 a...

热门问题