Go语言 一些问题了解

一、读取文件数据,是阻塞还是非阻塞的?

        分两种情况:常规读取文件数据,和网络IO读取数据

1. 常规读取文件数据:

    io.Reader 和 bufio.Reader 是同步进行的。 

    bufio.Reader 提供缓冲的读取操作,意味着数据是被阻塞式地 一次一段地 读取进来,然后存储在缓冲区内。当你需要读取更多数据时,它会从文件或其他 IO 源继续填充缓冲区。

    如果想要异步读取文件,可以使用 goroutines 和 channels。

2. 网络IO读取数据:

   Go语言中的网络IO模型,主要采用IO多路复用的方式,通过 goroutine 和 阻塞机制, 同时监听多个IO事件(文件描述符fd)。

    开发者使用阻塞式的方式来编写程序,然后通过goroutine和channel来处理并发,每个channel对应一个io操作。所有的IO操作都是阻塞调用的。

    Go语言中,网络IO的操作被封装在netpoll中。。

二、GO使用组合而非继承,体现了哪些优势?

1. 代码更优雅:对象的层次结构能够保持简洁,易于理解对象是负责哪个单一任务。

2. 降低了耦合:继承表示的是类型扩展的逻辑;而组合表示的是对象之间的包含关系。组合模式需要承担的职责更低,比如省去了构造和析构的继承逻辑。

3. 使用更灵活:嵌入的对象,可以在运行的时候被改变,被替换成同类型对象。

三、传参、引用类型、赋值

    Go语言传参,不管是数值类型还是引用类型,都是 值传递

    传递 引用类型 的时候,传递的是指针。传递之后,会有新的指针变量,但是指向的数据是同一份数据, 修改数据的话会修改原值

    引用类型 赋值 的话是浅拷贝,数据修改逻辑同上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/21533.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站入门:Flask用法讲解

Flask是一个使用Python编写的轻量级Web服务框架,旨在帮助开发人员快速构建和部署Web应用程序。下面将对Flask进行更为详细的解释说明,并展示其使用示例与注意事项: 1.解释说明 定义及特点: Flask以其简洁和灵活著称,允许开发者以…

C++:list模拟实现

hello,各位小伙伴,本篇文章跟大家一起学习《C:list模拟实现》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 如果本篇文章对你有帮助,还请各位点点赞!&#xf…

LeetCode题练习与总结:二叉树展开为链表--114

一、题目描述 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 …

深入探讨Java字符串拼接的艺术

引言 在Java编程中,字符串是最基本的数据类型之一。字符串拼接是开发过程中一个非常常见的操作,无论是构建用户界面的文本,还是生成日志信息,都离不开字符串的拼接。然而,字符串拼接的效率和正确性常常被开发者忽视&a…

格式化数据恢复指南:从备份到实战,3个技巧一网打尽

朋友们!你们有没有遇到过那种“啊,我的文件呢?”的尴尬时刻?无论是因为手滑、电脑抽风还是其他原因,数据丢失都可能会让我们抓狂,甚至有时候,我们可能一不小心就把存储设备格式化了,…

香橙派OrangePI AiPro测评 【运行qt,编解码,xfreeRDP】

实物 为AI而生 打开盒子 配置 扛把子的 作为业界首款基于昇腾深度研发的AI开发板,Orange Pi AIpro无论在外观上、性能上还是技术服务支持上都非常优秀。采用昇腾AI技术路线,集成图形处理器,拥有8GB/16GB LPDDR4X,可以外接32…

进程通信——管道

什么是进程通信? 进程通信是实现进程间传递数据信息的机制。要实现数据信息传递就要进程间共享资源——内存空间。那么是哪块内存空间呢?进程间是相互独立的,一个进程不可能访问其他进程的内存空间,那么这块空间只能由操作系统提…

什么是RPA自动化办公?

RPA自动化办公:提升效率的利器 如今,自动化办公已成为提升效率、减少错误、节省成本的关键手段。RPA(机器人流程自动化,Robotic Process Automation)作为其中的重要组成部分,正受到越来越多企业的青睐。那…

【全开源】简单商城系统源码(PC/UniAPP)

提供PC版本、UniAPP版本(高级授权)、支持多规格商品、优惠券、积分兑换、快递鸟电子面单、支持移动端样式、统计报表等 提供全部前后台无加密源代码、数据库离线部署。 构建您的在线商店的基石 一、引言:为什么选择简单商城系统源码? 在数字化时代&am…

【Spring Cloud Alibaba】初识Spring Cloud Alibaba

目录 回顾主流的微服务框架Spring Cloud 版本简介Spring Cloud以往的版本发布顺序排列如下: 由停更引发的"升级惨案"哪些Netflix组件被移除了? 替换方案服务注册中心:服务调用:负载均衡:服务降级&#xff1a…

Python—面向对象小解(6)-闭包、装饰器

一、闭包 在Python中,闭包(closure)是一个函数对象,即使在其词法作用域外被调用,它仍然能访问该作用域内的变量。闭包通过“捕获”周围作用域的变量,保持这些变量的状态,即使在外部函数已经返回…

干货分享 | TSMaster 中 Hex 文件编辑器使用详细教程

TSMaster 软件的 Hex 文件编辑器提供了文件处理的功能,这一特性让使用 TSMaster 软件的用户可以更便捷地对 Hex、bin、mot、s19 和 tsbinary 类型的文件进行处理。 本文重点讲述 TSMaster 中 Hex 文件编辑器的使用方法,该编辑器能实现将现有的 Hex、bin、…

@vue-office/excel 解决移动端预览excel文件触发软键盘

先直接上代码 不耽误大家时间 标明下插件库 非常感谢作者提供预览插件 vue-office/excel 只需要控制CSS :deep(.x-spreadsheet-overlayer) {.x-spreadsheet-selectors {display: none !important;} } :deep(.x-spreadsheet-bottombar) {li.active {user-select: none !import…

家政上门系统源码,家政上门预约服务系统开发涉及的主要功能

家政上门预约服务系统开发是指建立一个在线平台或应用程序,用于提供家政服务的预约和管理功能。该系统的目标是让用户能够方便地预约各种家政服务,如保洁、家庭护理、月嫂、家电维修等,并实现服务供应商管理和订单管理等功能。 以下是开发家政…

Windows API 速查

Windows API 函数大全 (推荐):https://blog.csdn.net/xiao_yi_xiao/article/details/121604742Windows API 在线参考手册:http://www.office-cn.net/t/api/index.html?web.htmWindows 开发文档 (官方):https://learn.microsoft.com/zh-cn/wi…

linux驱动学习(三)之uboot与内核编译

需要板子一起学习的可以这里购买(含资料):点击跳转 GEC6818内核源码下载:点击跳转 一、环境配置 由于GEC6818对应是64位系统,虚拟机中的linux系统也要是64位,比如:ubuntu16.04.rar …

Bee 支持 与 mybatis-plus 混用吗?

Bee 支持 与 mybatis-plus 混用吗? 你是在什么场景下要混用呢? mybatis-plus是基于mybatis. 而Bee本身就是一个ORM框架了. Hibernate/MyBatis plus Sharding JDBC Jpa Spring data GraphQL App ORM (Android, 鸿蒙) Bee Bee支持的数据库 1.MySQL 2.Oracle 3.SQL…

elasticsearch的常规操作--增删改查和批量处理

1、_cat 查询 GET /_cat/nodes: 查看所有节点 GET /_cat/health: 查看es 健康状况 GET /_cat/master: 查看主节点 GET /_cat/indices:查看所有索引show databases; 2、索引一个文档(保存) 保存一个数据&…

某红书旋转滑块验证码分析与协议算法实现(高通过率)

文章目录 1. 写在前面2. 接口分析3. 验证轨迹4. 算法还原 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致…

力扣SQL50 学生们参加各科测试的次数 查询 三表查询

Problem: 1280. 学生们参加各科测试的次数 👨‍🏫 参考题解 join等价于inner join,不用关联条件的join等价于cross join Code select stu.student_id,stu.student_name, sub.subject_name,count(e.subject_name) attended_exams from Stud…