channel

软件架构师笔记15 天前
java·网络·golang·通道·channel
深入浅出:Go 语言通道(Channel)在并发编程中,如何安全地在多个 goroutine 之间共享数据是一个重要的问题。Go 语言提供了一种强大的机制——通道(Channel),用于在 goroutine 之间进行通信和同步。本文将深入探讨 Go 语言中的通道,帮助你更好地理解和使用这一重要特性。
huisheng_qaq7 个月前
网络编程·socket·nio·bio·channel·selector
【netty系列-03】深入理解NIO的基本原理和底层实现(详解)Netty系列整体栏目在上一篇中,讲解了bio的底层原理和具体实现,虽然bio在一定场景下也可以进行通信,但是随着互联网越来越多业务的场景,bio会存在阻塞的弊端被暴露无疑,在并发量稍微大点的地方,通过bio实现的网络编程会显得略显吃力。于是在jdk1.4之后,引入了一个新东西 NIO ,由于bio原名叫做 Blocking IO阻塞io,因此新网络编程的取名nio,有着 NoBlocking IO即不阻塞io,当然也有的地方取名为new io。
little_fat_sheep8 个月前
select·channel·selectclause·onjoin·onawait·onsend·onreceive
【Kotlin】select简介协程的 select 是一种用于异步操作的选择器,它允许同时等待多个挂起函数的结果,并在其中一个完成时执行相应的操作。
little_fat_sheep8 个月前
kotlin·channel·produce·actor·receivechannel·sendchannel
【Kotlin】Channel简介Channel 是一个并发安全的阻塞队列,可以通过 send 函数往队列中塞入数据,通过 receive 函数从队列中取出数据。
utmhikari8 个月前
golang·多线程·并发·channel·后端开发
【从零单排Golang】第十六话:channel的用法和基本原则在基于Golang的后端开发中,channel是一个必须要掌握的并发编程概念。和python的queue一样,channel在不同的goroutine里承担着传递信息的作用,使得业务逻辑的状态上下文可以在不同的goroutine中共享。今天,我们就来看一下channel的用法还有一些使用上的基本原则。
Sudo_Wang9 个月前
java·服务器·前端·网络编程·reactor·channel
Reactor线程模型一个线程来处理所有的请求,会导致并发很高,如果其中一个Channel在进行读写数据的时候,数据量很大,会导致处理速度很缓慢,这时候如果有人再次发次连接,速度会很慢。
许野平9 个月前
开发语言·后端·rust·channel·关闭
Rust 如何优雅关闭 channel在 Rust 的标准库中,std::sync::mpsc::channel 提供了一个多生产者单消费者的 channel 实现。这个 channel 并不直接支持“优雅关闭”的概念,因为发送端(tx)和接收端(rx)是通过独立的对象表示的,而发送端被丢弃(drop)时,并不会自动通知接收端。
许野平9 个月前
rust·channel·tokio
Rust: Channel 代码示例在 Rust 中,通道(Channel)通常使用 std::sync::mpsc(多生产者单消费者)或 tokio::sync::mpsc(在异步编程中,特别是使用 Tokio 运行时)来创建。下面是一个使用 std::sync::mpsc 的简单示例:
赢乐10 个月前
broadcast·channel·postmessage·浏览器跨 tab 窗口·页面间的通信·浏览器的同源策略·message 事件
基于postMessage和BroadcastChannel实现浏览器跨Tab窗口通信的方法介绍在前端,我们经常会用postMessage来实现页面间的通信,但这种方式更像是点对点的通信。对于一些需要广播(让所有页面知道)的消息,用postMessage不是非常自然。Broadcast Channel 就是用来弥补这个缺陷的。
AI架构师易筋10 个月前
开发语言·ios·swift·channel·combine
Swift Combine 管道 从入门到精通三Combine 系列函数响应式编程的管道可能难以理解。 发布者生成和发送数据,操作符对该数据做出响应并有可能更改它,订阅者请求并接收这些数据。 这本身就很复杂,但 Combine 的一些操作符还可能改变事件发生的时序 —— 引入延迟、将多个值合并成一个值等等。 由于这些比较复杂可能难以理解,因此函数响应式编程社区使用一种称为 弹珠图 的视觉描述来说明这些变化。
矩阵科学1 年前
nio·channel·nio channel·nio 通道·java nio通道
Java-NIO篇章(3)——Channel通道类详解Java NIO中,一个socket连接使用一个Channel(通道)来表示。对应到不同的网络传输协议类型,在Java中都有不同的NIO Channel(通道) 相对应。其中最为重要的四种Channel(通道)实现: FileChannel、 SocketChannel、 ServerSocketChannel、 DatagramChannel :
喜欢嗑瓜子1 年前
go·并发·channel·gochannel
go并发 - channel并发编程是利用多核心能力,提升程序性能,而多线程之间需要相互协作、共享资源、线程安全等。任何并发模型都要解决线程间通讯问题,毫不夸张的说线程通讯是并发编程的主要问题。go使用著名的CSP(Communicating Sequential Process,通讯顺序进程)并发模型,从设计之初 Go 语言就注重如何在编程语言层级上设计一个简洁安全高效的抽象模型,让程序员专注于分解问题和组合方案,而且不用被线程管理和信号互斥这些繁琐的操作分散精力。channel是线程简通讯的具体实现之一,本质就是一个线程安全的
灯火消逝的码头1 年前
golang·协程·channel·goroutine
Go 并发编程 - 并发安全(二)并发情况下,多个线程或协程会同时操作同一个资源,例如变量、数据结构、文件等。如果不保证并发安全,就可能导致数据竞争、脏读、脏写、死锁、活锁、饥饿等一系列并发问题,产生重大的安全隐患,比如12306抢到同一张火车票、多个用户抢到只剩一件库存的商品。而并发安全就是为了避免这些问题。Golang 中有一些原则和工具来保证并发安全,例如:
灯火消逝的码头1 年前
golang·协程·channel·goroutine
Go 并发编程 - Goroutine 基础 (一)进程是一次程序在操作系统执行的过程,需要消耗一定的CPU、时间、内存、IO等。每个进程都拥有着独立的内存空间和系统资源。进程之间的内存是不共享的。通常需要使用 IPC 机制进行数据传输。进程是直接挂在操作系统上运行的,是操作系统分配硬件资源的最小单位。
追随者永远是胜利者1 年前
开发语言·golang·并发编程·channel
go语言中channel类型目录一、什么是channel二、为什么要有channel三、channel操作使用
BruceGerGer1 年前
flutter·ios·cocoa·相互通信·method·channel·flutterplugin
flutter开发实战-MethodChannel实现flutter与iOS双向通信flutter开发实战-MethodChannel实现flutter与iOS双向通信