JAVA多线程使用场景和注意事项

我曾经对自己的小弟说,如果你实在搞不清楚什么时候用HashMap,什么时候用ConcurrentHashMap,那么就用后者,你的代码bug会很少。他问我:ConcurrentHashMap是什么? -.-编程不是炫技。大多数情况下,怎么把代码写简单,才是能力。

150行代码,手写线程池,每个人都能学会。自行准备linux环境

日志在罗盘的时候每一次都需要写磁盘,它里面带有缓冲区的,但不一定每次都罗盘,这个过程中间也有一个罗盘动作的不管有没有缓冲区,每执行一次log都需要写一次磁盘,这个过程中间你会发现写磁盘的速度是很慢的,对于服务器来说每一次请求,对于有N多个客户端,每个客户端往服务端发送请求,

走进Golang之Channel的数据结构

为了理解这些数据结构解决了什么问题,我们先来做个简单的回顾,看看为什么需要这两个数据结构,他们解决了什么问题。

java中try/catch性能和原理

记得在做企业云项目的时候,我接了两个有意思的任务,一个是为几个线程加很多的try/catch代码。catch的异常有好几层,范围最小的,或者说最精准的异常放在最上面,最后跟一个Exceptione。

「理解C++20协程原理」从Linux线程、线程与异步编程、协程与异步

协程不是系统级线程,很多时候协程被称为“轻量级线程”、“微线程”、“纤程(fiber)”等。简单来说可以认为协程是线程里不同的函数,这些函数之间可以相互快速切换。协程和用户态线程非常接近,用户态线程之间的切换不需要陷入内核,但部分操作系统中用户态线程的切换需要内核态线程的辅助。

golang如何调度你的程序的

当你写下如下程序的时候,电脑的是如何执行你的程序的?是执行第一个go func的死循环,还是打印”hello go”?goroutinego可以轻轻松松并发上万,这个得益于goroutine。

并发编程挑战:死锁与上下文切换

引言上下文切换(有时也称做进程切换或任务切换)是指 CPU 从一个进程或线程切换到另一个进程或线程。上下文切换会影响多线程执行速度。死锁是指多个进程或线程循环等待它方占有的资源而无限期地僵持下去的局面。

M:N协程原理与设计

作者:quintonwang,腾讯 TEG 后台开发工程师出处:https://zhuanlan.zhihu.com/p/362621806什么是M:N协程?为什么要支持M:N协程?如何设计M:N协程?

Golang package sync 剖析(三):sync.Cond

sync.Once里锁和原子操作用于控制共享变量的读写;channel 通过 close 可以通知其他协程读取数据;但 sync.Once 和 channel 有一个明显的缺点是:它们都只能保证第一次满足条件变量,而 sync.Cond 可以提供持续的保障。

对协程的一些理解

协程协程(coroutine)最早由Melvin Conway在1963年提出并实现,一句话定义:协程是用户态的轻量级的线程线程和协程线程和协程经常被放在一起比较;线程一旦被创建出来,编写者是无法决定什么时候获得或者放出时间片的,是由操作系统进行统一调度的;而协程对编写者来说是可

网站地图