首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏程序猿阿朗的专栏

    IO通信模型(二)同步非阻塞模式NIO(NonBlocking IO)

    同步非阻塞模式(NonBlocking IO) 在非阻塞模式中,发出Socket的 accept()和 read()操作时,如果内核中的数据还没有准备好,那么它并不会阻塞用户进程,而是立刻返回一个信息。

    1K10发布于 2019-11-04
  • 来自专栏芯片验证之uvm验证方法学系列

    uvm中的tlm通信机制

    #(req); #### get action uvm_get_port#(req); uvm_blocking_get_port#(req); uvm_nonblocking_get_port#(req ); #### peek action uvm_peek_port#(req); uvm_blocking_peek_port#(req); uvm_nonblocking_peek_port#(req #(req); #### get action uvm_get_export#(req); uvm_blocking_get_export#(req); uvm_nonblocking_get_export #(req,T); #### get action uvm_get_imp#(req,T); uvm_blocking_get_imp#(req,T); uvm_nonblocking_get_imp *_nonblocking_*是非阻塞的,对应的方法是try_put、can_put、try_get、can_get......等。

    19610编辑于 2025-10-12
  • 来自专栏C++ 动态新闻推送

    C++ 中文周刊 2024-11-16 第172期

    Args> class nonblocking_fp<R(Args...)> { public: using impl_t = R (*)(Args...) [[clang::nonblocking]]; private: impl_t mImpl{ nullptr_t }; public: nonblocking_fp() = default; nonblocking_fp(impl_t f) : mImpl{ f } {} R operator()(Args... args) const { return mImpl(std ArgTypes > nonblocking_fp( R(*)(ArgTypes...) ) -> nonblocking_fp<R(ArgTypes...)>; // -- // Wrap the function pointer in a functor which preserves ``nonblocking``. std::sort(vec.begin(), vec.end(), nonblocking_fp

    25200编辑于 2024-11-18
  • 来自专栏全栈程序员必看

    Linux(程序设计):55—非阻塞connect(EINPROGRESS)「建议收藏」

    article/details/89890429 一、非阻塞connect概述 man手册 connect的man手册有如下一段内容: EINPROGRESS The socket is nonblocking include <time.h> #include <sys/select.h> #include <arpa/inet.h> int setnonblocking(int fd); int set_nonblocking_connect [port]\n",basename(argv[0])); exit(EXIT_FAILURE); } int cli_fd; if((cli_fd=set_nonblocking_connect fcntl"); exit(EXIT_FAILURE); } return sock_fd; } //nonblocking return printf("connection time out\n"); close(sock_fd); return -1; } //nonblocking

    1.7K30编辑于 2022-09-09
  • 来自专栏全栈程序员必看

    linux阻塞与非阻塞(connect连接超时)

    article/details/89890429 一、非阻塞connect概述 man手册 connect的man手册有如下一段内容: EINPROGRESS The socket is nonblocking include <time.h> #include <sys/select.h> #include <arpa/inet.h> int setnonblocking(int fd); int set_nonblocking_connect [port]\n",basename(argv[0])); exit(EXIT_FAILURE); } int cli_fd; if((cli_fd=set_nonblocking_connect fcntl"); exit(EXIT_FAILURE); } return sock_fd; } //nonblocking return printf("connection time out\n"); close(sock_fd); return -1; } //nonblocking

    7.6K10编辑于 2022-07-25
  • 来自专栏高性能服务器开发

    网络通信基础重难点解析 08 :connect 函数在阻塞和非阻塞模式下的行为

    按上述流程编写代码如下: /** * 异步的connect写法,nonblocking_connect.cpp * zhangyl 2018.12.17 */ #include <sys/types.h nonblocking_connect.cpp [root@localhost testsocket]# . /nonblocking_connect [select] connect to server successfully. /nonblocking_connect [select] connect to server successfully. 奇怪?为什么连接不上也会得出一样的输出结果?难道程序有问题? 完整代码如下: /** * Linux 下正确的异步的connect写法,linux_nonblocking_connect.cpp * zhangyl 2018.12.17 */

    2K20发布于 2019-04-29
  • 来自专栏码匠的流水账

    聊聊canal的DirectLogFetcher

    public void open(Connection conn, String fileName, long filePosition, final int serverId, boolean nonBlocking 0) filePosition = BIN_LOG_HEADER_SIZE; sendBinlogDump(fileName, filePosition, serverId, nonBlocking fileName, final long filePosition, final int serverId, boolean nonBlocking NET_HEADER_SIZE; ​ putByte(COM_BINLOG_DUMP); putInt32(filePosition); int binlog_flags = nonBlocking ​ //...... } sendBinlogDump方法发送COM_BINLOG_DUMP命令,传递要读取的binlog名称,position,serverId以及binlog_flags(nonBlocking

    90500发布于 2020-04-22
  • 来自专栏皮皮星球

    What's the Difference Between Blocking vs Non-Blocking and Sync vs Async?

    . // Assuming a library function 'async_read_nonblocking' /* void async_read_nonblocking(std::ifstream { std::cout << content; } int main() { std::ifstream file("example.txt"); async_read_nonblocking

    48930编辑于 2023-11-18
  • 来自专栏编程大主教

    源码阅读之 pond

    NonBlocking() bool // Returns the context associated with this pool. pool := &pool{ ctx: context.Background(), nonBlocking: DefaultNonBlocking, maxConcurrency the queue is full. // This option is only effective when the queue size is set. func WithNonBlocking(nonBlocking bool) Option { return func(p *pool) { p.nonBlocking = nonBlocking } } 眼尖的人可能一眼看出来这是 生成器模式(Builder *pool ctx context.Context cancel context.CancelCauseFunc nonBlocking

    24500编辑于 2025-03-26
  • 来自专栏码匠的流水账

    聊聊canal的DirectLogFetcher

    public void open(Connection conn, String fileName, long filePosition, final int serverId, boolean nonBlocking 0) filePosition = BIN_LOG_HEADER_SIZE; sendBinlogDump(fileName, filePosition, serverId, nonBlocking fileName, final long filePosition, final int serverId, boolean nonBlocking NET_HEADER_SIZE; putByte(COM_BINLOG_DUMP); putInt32(filePosition); int binlog_flags = nonBlocking //...... } sendBinlogDump方法发送COM_BINLOG_DUMP命令,传递要读取的binlog名称,position,serverId以及binlog_flags(nonBlocking

    1.1K30发布于 2020-04-24
  • 来自专栏鳄鱼儿的技术分享

    Netty系列(六):阻塞/非阻塞、同步/异步的区别

    Blocking/Nonblocking、Synchronous/Asynchronous 阻塞( Blocking ) /非阻塞( Nonblocking) 同步(Synchronous)/异步( Asynchronous 非阻塞式发送(nonblocking send)。发送方进程调用 send() 后, 立即就可以其他操作。 非阻塞式接受(nonblocking receive) 接收方调用 receive() 函数后, 要么得到一个有效的结果, 要么得到一个空值, 即不会被阻塞。

    64510编辑于 2024-05-21
  • 来自专栏站长的编程笔记

    【说站】SocketChannel在java中实现客户端

    // 1. open a socket channel             channel = SocketChannel.open();             // adjust to be nonblocking connection to server and repeatedly poll with complete             // connect() and finishConnect() are nonblocking

    1.2K20编辑于 2022-11-23
  • 来自专栏GoUpUp

    Go 每日一库之 ants

    阻塞的任务数量达到这个值后,后续任务提交直接返回失败 Nonblocking:池是否阻塞,默认阻塞。 bool) Option { return func(opts *Options) { opts.Nonblocking = nonblocking } } func WithPanicHandler from task:5 hello from task:4 hello from task:6 task:7 err:too many goroutines blocked on submit or Nonblocking is set task:3 err:too many goroutines blocked on submit or Nonblocking is set hello from task:1 hello 非阻塞 ants池默认是阻塞的,我们可以使用WithNonblocking(nonblocking bool)设置其为非阻塞。

    1.9K10发布于 2021-06-25
  • 来自专栏快乐阿超

    feign-reactive

    ReactiveFeign .builder() .target(IcecreamServiceApi.class, "http://www.icecreame.com") /* Execute nonblocking .build() ) .target(IcecreamServiceApi.class, "http://" + serviceName); /* Execute nonblocking

    74530编辑于 2023-10-01
  • 来自专栏有文化的技术人

    探索eventlet通信机制

    python原生的socket.socket()类并替换为了eventlet.greenio.base#GreenSocket类 该补丁类完全兼容原生socket类的API,它还可以识别关键字参数set_nonblocking loop fd = None def __init__(self, family=socket.AF_INET, *args, **kwargs): should_set_nonblocking = kwargs.pop('set_nonblocking', True) if isinstance(family, six.integer_types): = -1 so that won't call set non-blocking on # closed socket if should_set_nonblocking = -1: set_nonblocking(fd) self.fd = fd # when client calls setblocking(0)

    80330编辑于 2022-10-27
  • 来自专栏desperate633

    细谈Select,Poll,Epoll阻塞 io 模型 blocking IO非阻塞 io 模型 nonblocking IOio多路复用模型 IO multiplexing细谈 io 多路复用技术

    阻塞 io 模型 blocking IO 非阻塞 io 模型 nonblocking IO io多路复用模型 IO multiplexing 细谈 io 多路复用技术 select 和poll 细谈事件驱动 非阻塞 io 模型 nonblocking IO 就是对于第一个阶段,也就是应用层数据到kernel的过程中,recvfrom会轮询检查,如果kernel数据没有准备还,就返回一个EWOULDBLOCK

    92710发布于 2018-08-22
  • 来自专栏Java架构师必看

    libevent介绍

    (3)   a new Connection 进来,丢入 Event-based Array,由 Main Process 以 Nonblocking 的方式处理所有的 I/O。 如果才用 Event-based 的方式在于实做上不好写,尤其是要注意到事件产生时必须 Nonblocking,于是会需要实做 Buffering 的问题,而 Multi-thread 所会遇到的 Memory-leak 对于非阻塞的IO模型, 因为 Nonblocking,所以在 write() 或是 send() 时满了需要自己 Buffering。   因为 Nonblocking,所以不能使用 fgets() 或是其他类似的 function,于是需要自己刻一个 Nonblocking 的 fgets()。 connection_accept, &ev);     /* Add event. */     event_add(&ev, NULL);     event_dispatch();     return 0; } 在写 Nonblocking

    2.3K40发布于 2021-03-22
  • 来自专栏后端码事

    JAVA NIO Channel

    e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } Blocking Nonblocking Stream-oriented可以设置nonblocking。 Socket Channel 继承自SelectableChannel=》Selectors=》多路复用。(非阻塞IO)。

    61310发布于 2020-09-11
  • 来自专栏蓝天

    远程执行命令的C++实现CLibssh2

    服务监听的端口号 // username 用来连接远程主机的用户名 // password 用户名username的密码 // timeout_seconds 连接超时时长,单位为秒 // nonblocking _t port, const std::string& username, const std::string& password, uint32_t timeout_seconds=2, bool nonblocking

    2.5K20发布于 2018-08-10
  • 来自专栏pydata

    asynchrous,synchrous,blocking,unblocking network

    Linux下的五种I/O模型 阻塞I/O(blocking I/O) 非阻塞I/O(nonblocking I/O) I/O服用(select和poll)(I/O multiplexing) 信号驱动I

    48520发布于 2018-08-02
领券