Comprehensive Rust(繁体中文)傳回借用的資料。 • 適用 Rust 一般借用規則:可以由一個執行緒以可變方式借用,或者由任意數量的執行緒以不可變 方式借用。 309 第 59 部分 通道 Rust 通道分為兩個部分:Sender和 Receiver 。這兩個部分透過通道相連,但你只能看到端 點。 use std::sync::mpsc; fn main() { let (tx, rx) = mpsc::channel(); {:?}", rx.recv()); } • mpsc 代表多重生產者、唯一消費者。Sender 和 SyncSender 會實作 Clone (用於製作多重生 產者),但 Receiver 不會。 • send() 和 recv() 會傳回 Result。如果傳回的是 Err,表示對應的 Sender 或 Receiver 已 釋放,且通道已關閉。 59.1 無界限的通道 你可以使用 mpsc::channel() Send + Sync,一般型別通常就會是 Send + Sync。 Send + !Sync 以下型別可以轉移到其他執行緒,但不會防護執行緒安全。原因通常在於內部可變性: • mpsc::Sender • mpsc::Receiver • Cell • RefCell !Send + Sync 以下型別會防護執行緒安全,但無法轉移至其他執行緒: • MutexGuard :使用 0 码力 | 358 页 | 1.41 MB | 11 月前3
julia 1.10.10transmit data over UDP multicast, simply send to the socket. Notice that it is not necessary for a sender to join the multicast group. using Sockets group = ip"228.5.6.7" socket = Sockets.UDPSocket() ket, group) println(String(recv(socket))) leave_multicast_group(socket, group) close(socket) Sender: using Sockets group = Sockets.IPv6("ff05::5:6:7") socket = Sockets.UDPSocket() send(socket,0 码力 | 1692 页 | 6.34 MB | 3 月前3
Julia 1.10.9transmit data over UDP multicast, simply send to the socket. Notice that it is not necessary for a sender to join the multicast group. using Sockets group = ip"228.5.6.7" socket = Sockets.UDPSocket() ket, group) println(String(recv(socket))) leave_multicast_group(socket, group) close(socket) Sender: using Sockets group = Sockets.IPv6("ff05::5:6:7") socket = Sockets.UDPSocket() send(socket,0 码力 | 1692 页 | 6.34 MB | 3 月前3
Julia 1.11.4transmit data over UDP multicast, simply send to the socket. Notice that it is not necessary for a sender to join the multicast group. using Sockets group = ip"228.5.6.7" socket = Sockets.UDPSocket()CHAPTER ket, group) println(String(recv(socket))) leave_multicast_group(socket, group) close(socket) Sender: using Sockets group = Sockets.IPv6("ff05::5:6:7") socket = Sockets.UDPSocket() send(socket,0 码力 | 2007 页 | 6.73 MB | 3 月前3
Julia 1.11.5 Documentationtransmit data over UDP multicast, simply send to the socket. Notice that it is not necessary for a sender to join the multicast group. using Sockets group = ip"228.5.6.7" socket = Sockets.UDPSocket()CHAPTER ket, group) println(String(recv(socket))) leave_multicast_group(socket, group) close(socket) Sender: using Sockets group = Sockets.IPv6("ff05::5:6:7") socket = Sockets.UDPSocket() send(socket,0 码力 | 2007 页 | 6.73 MB | 3 月前3
Julia 1.11.6 Release Notestransmit data over UDP multicast, simply send to the socket. Notice that it is not necessary for a sender to join the multicast group. using Sockets group = ip"228.5.6.7" socket = Sockets.UDPSocket()CHAPTER ket, group) println(String(recv(socket))) leave_multicast_group(socket, group) close(socket) Sender: using Sockets group = Sockets.IPv6("ff05::5:6:7") socket = Sockets.UDPSocket() send(socket,0 码力 | 2007 页 | 6.73 MB | 3 月前3
julia 1.13.0 DEVtransmit data over UDP multicast, simply send to the socket. Notice that it is not necessary for a sender to join the multicast group. using Sockets group = ip"228.5.6.7" socket = Sockets.UDPSocket()CHAPTER ket, group) println(String(recv(socket))) leave_multicast_group(socket, group) close(socket) Sender: using Sockets group = Sockets.IPv6("ff05::5:6:7") socket = Sockets.UDPSocket() send(socket,0 码力 | 2058 页 | 7.45 MB | 3 月前3
Julia 1.12.0 RC1transmit data over UDP multicast, simply send to the socket. Notice that it is not necessary for a sender to join the multicast group. using Sockets group = ip"228.5.6.7" socket = Sockets.UDPSocket()CHAPTER ket, group) println(String(recv(socket))) leave_multicast_group(socket, group) close(socket) Sender: using Sockets group = Sockets.IPv6("ff05::5:6:7") socket = Sockets.UDPSocket() send(socket,0 码力 | 2057 页 | 7.44 MB | 3 月前3
Julia 1.12.0 Beta4transmit data over UDP multicast, simply send to the socket. Notice that it is not necessary for a sender to join the multicast group. using Sockets group = ip"228.5.6.7" socket = Sockets.UDPSocket()CHAPTER ket, group) println(String(recv(socket))) leave_multicast_group(socket, group) close(socket) Sender: using Sockets group = Sockets.IPv6("ff05::5:6:7") socket = Sockets.UDPSocket() send(socket,0 码力 | 2057 页 | 7.44 MB | 3 月前3
Julia 1.12.0 Beta3transmit data over UDP multicast, simply send to the socket. Notice that it is not necessary for a sender to join the multicast group. using Sockets group = ip"228.5.6.7" socket = Sockets.UDPSocket()CHAPTER ket, group) println(String(recv(socket))) leave_multicast_group(socket, group) close(socket) Sender: using Sockets group = Sockets.IPv6("ff05::5:6:7") socket = Sockets.UDPSocket() send(socket,0 码力 | 2057 页 | 7.44 MB | 3 月前3
共 11 条
- 1
- 2













