goruntine+channel 案例练习一

package main
import (
	"fmt"
)
var (
	numChan = make(chan int,10)
	resChan = make(chan map[int]int,8)
	exitChan = make(chan bool,8)
)


func main(){
	//1 协程  存放数字
	go func(){
		for i:=1;i<=2000;i++{
			numChan<-i
		}
		close(numChan)
	}()
	// 8 协程 取			计算1+...+n的值				存到另一个管道 resChan 
	for i:=0;i<8;i++{
		go func(){
			for;;{
				
				n= <-numChan
				// 该协程取完了
				if len(numChan)== 0{
					break
				}

				// 计算 n连加 = sum
				sum:=0
				for j:=0;j<n;j++{
					sum+=n
				}

				// 存到另一个管道 resChan 
				resSlice := make(map[int]int)
				resSlice[n] = sum
				resChan<-resSlice
			}
			exitChan<-true
		}()
	}


	go func(){
		for;;{
			if len(exitChan) == 8{
				close(resChan)
				// close(exitChan) //可关可不关
				break
			}
		}
	}()
	
	// 遍历 resChen 打印
	for v :=range resChan{
		for index,value:=range v{
			fmt.Printf("res[%v] = %v\n",index,value)
		} 
	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VTP (VLAN Trunking Protocol) 是一种用于在局域网中自动同步和管理 VLAN (虚拟局域网) 配置的协议。VTP 使用 VLAN trunk 通道来实现在网络中传输 VLAN 信息。 在一个小型局域网中使用 VTP 和 VLAN trunk channel 可以实现以下的优势和功能: 1. 自动同步 VLAN 配置:当一个交换机被配置为 VTP server 模式时,它可以自动将 VLAN 配置信息传输给其他 VTP client 模式的交换机。这样可以简化 VLAN 配置的管理,确保所有交换机上的 VLAN 都是一致的。 2. 减少配置工作量:通过 VTP 和 VLAN trunk channel,你只需要在一个交换机上进行 VLAN 配置,其他连接的交换机会自动同步这些配置。这样节省了管理员的工作量和时间。 3. 灵活的 VLAN 拓扑:使用 VLAN trunk channel,可以将多个交换机连接在一起,形成一个扩展的局域网。这样,VLAN 可以在整个网络中使用并跨越多个交换机,实现更灵活的网络拓扑结构。 4. 增强网络安全性:使用 VLAN 可以将不同的用户或设备隔离开,增加网络的安全性。通过 VLAN trunk channel,可以在多个交换机间传输 VLAN 信息,确保 VLAN 的一致性,防止未授权的访问。 需要注意的是,VTP 只适用于 Cisco 设备,因此在购买和配置交换机时需要考虑到这一点。此外,应该避免在生产网络中将所有交换机都配置为 VTP server,并确保设置正确的 VTP domain 名称和密码来避免意外的配置更改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值