V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  hhx  ›  全部回复第 1 页 / 共 1 页
回复总数  14
2019-12-23 00:24:50 +08:00
回复了 jzjjzj 创建的主题 程序员 非科班 看考研辅导班视频补习计算机知识可以?
408 四门教材必看,如果想加深理解,可以做对应的王道单科书习题。如果想更进一步,看经典的英文著作,比如 csapp,Unix 环境高级编程,算法导论,现代操作系统。另外,如果对特定的 cs 方向感兴趣,可以继续深入学习,比如编译原理,计算机图形学,数据库系统,分布式系统,当然这都是传统方向,流行的是机器学习,属于研究性方向,理论性很强,需要大量阅读文献。
2019-12-10 23:03:13 +08:00
回复了 donotquestion 创建的主题 程序员 写书、长文章的数据库设计问题
我和一楼的想法一样,建议学习下 git 的思想
2019-11-30 13:56:10 +08:00
回复了 lovelynn 创建的主题 程序员 IPV6 会带来哪些技术改革和机会?
我认为 P2P 应用会蓬勃发展,传统的 CS/BS 发展将减缓。区块链,物联网等应用将高速发展。
2019-11-28 01:20:23 +08:00
回复了 augusDuan 创建的主题 Java 关于 disconf 配置中心,如何可以做到动态注入到 javabean 中呢
你是说增加配置文件中的属性,而对应的 Java 类也自动增加字段吗?
2019-11-28 01:07:55 +08:00
回复了 gramyang 创建的主题 Java Android 上使用 wait/notify 的奇怪 bug
简单的线程同步,用初值为 0 的信号量即可,Java 中的 Semaphore。你程序的问题我想一楼的回答是正确的,你自己也说了是异步,走走停停不是一贯到底。
2019-11-28 00:04:43 +08:00
回复了 yejianmail 创建的主题 程序员 关于秒杀一般是如何保证库存操作的原子性的
@yejianmail 我想知道你是怎么用的
2019-11-27 23:36:15 +08:00
回复了 yejianmail 创建的主题 程序员 关于秒杀一般是如何保证库存操作的原子性的
秒杀系统设计应该涵盖两个要点,即限流和同步。限流可以采用 controller 层 CAS 结合分布式锁例如 Redis 或 Zookeeper。同步可以采用 service 层锁或 MySQL 乐观锁。你提到了数据库的事务,你确定只将逻辑写入事务就能保证系统的正确性吗?
2019-11-26 18:12:15 +08:00
回复了 MrOange 创建的主题 职场话题 我果然对校招有什么误解
从现在开始准备面试,要有针对性,能做多少做多少,一直到明年三月份,投社招简历,同时也关注一下 20 春招的一些公司,比如头条等,疯狂投简历,放下身段,看到底能拿几个 offer。如果运气好,收到不错的 offer 就工作,否则就准备考研。没太多选择,就是这样。別灰心,努力就有回报,相信我。
这个时候就看出编译原理的重要性了
@hehheh 请教下。目前国内的 C++开发是否要求掌握某个平台的开发库,例如 linux 提供的 C 接口等。我有 C 语言基础,也有一定的 linux 开发经验,想要从事 Cpp 开发的话,是否需要花时间学习 Cpp 相关的内容,例如 Cpp 标准库以及 boost 等准标准库。谢谢。
2019-11-20 14:49:26 +08:00
回复了 haiyan 创建的主题 深圳 鼻炎患者看过了,早去医院早享受
同脱敏治疗中。我比你严重,过敏源有尘螨和花粉,滴了三个月了,有所好转。
临界区完整的结构是,进入区,临界区,退出区和剩余取。进入区即 Lock.Lock,退出区即 Lock.unLock,剩余区即不需同步的代码段,临界区即需同步代码段。
说下我的理解。mutex 即互斥信号量,它首先是个信号量,并且初始值为 1。信号量的 pv 操作可以理解成 Java 中的内置锁,即对象监视器 monitor。大家知道,获取锁失败后,进程将进入锁的阻塞队列,并进入阻塞态,等待被释放锁的进程唤醒。再看 cas,典型用法时 cas 失败时,不进入阻塞态,而是继续执行 cas,直到成功,这叫自旋。因此说 mutex 的加锁解锁,伴随着进程的阻塞与唤醒,而 cas 没有。要知道进程的阻塞与唤醒是代价较高的操作,伴随着 pcb 的检索,进程状态修改,pcb 入队出队,以及进程 cpu 上下文的切换。如果临界区的代码较少,显而易见,cas 自旋方式性能更高。
Netty 应该是非阻塞 IO,和异步 IO 不是一回事。首先你要搞清楚所谓用户态 IO 到底是在干什么,其实很简单,就是在内核缓冲区与用户进程空间之间传送数据。举个例子,调用 BufferedReader 的 readLine 方法,该方法试图读取一行,但问题是该行数据很可能没有准备好,那怎么办呢?阻塞式 IO 的做法是阻塞当前进程,进程进入阻塞态,由 OS 负责在数据准备好时唤醒该进程,然后继续执行 IO。而非阻塞 IO 的做法是跳过执行该 IO 操作,执行后续代码,典型的做法是,不断轮训以检查数据是否准备好。有人会说了,那阻塞式 IO 岂不是更好,因为阻塞时没有占用 CPU,而非阻塞花费了 CPU 时间去轮训。我的观点是,阻塞尽管没有占用 CPU,但是整个程序依然是止步不前的,当处理较多用户连接时,很明显非阻塞方式的交互式更好,响应时间更低,吞吐量也更大。另一方面,阻塞式 IO 占用更多的线程,而非阻塞 IO 可以利用 OS 的 epoll 等系统调用,实现单一线程处理多个连接,明显更适合服务器。至于异步 IO,效率可能更高,但实却非常复杂。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5299 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 09:25 · PVG 17:25 · LAX 01:25 · JFK 04:25
Developed with CodeLauncher
♥ Do have faith in what you're doing.