自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 关于对“像素”的误解

IT 领域术语滥用的现象其实非常常见,“像素”只是其中之一。下次当你再和别人说起“像素”,或者听别人说起“像素”时,我想我们大家终于能统一共识了。但愿我们想的都是对方脑海里的那个“像素”。

2024-09-04 11:50:57 755

原创 如何用 C++ 写出优雅的条件表达式

总结一下,对于简短的变量初始化,可以这样用,尤其是如果想要声明成 const 常量的话。很多人说 C++ 越来越复杂)我们有现代的 C++,也可以写出优雅的代码。可能有人没有注意过,大部分程序语言都是区分 语句(statement) 和 表达式(expression)的,二者的区别是,如果我们写了一条语句,我们是想要。而 Rust 版本的可以做到,这就是表达式的优雅之处。确实,但写法啰嗦只是缺点之一。这是一条语句,我们想要的是“赋值”给。,如果我们写了一条表达式,我们是想要。是表达式,我们想要的是。

2024-08-22 19:28:49 343

原创 Qt reentrant class/function

一般我们说线程安全的数据结构,指的就是该数据结构能让它的同一个实例在不同线程里被访问(比如通过其接口读写它的内部变量),并且不会导致问题。即,只要一个类不使用全局变量,不使用自己外部作用域的变量,它肯定就是 reentrant 的。或者你把访问操作都加了锁,但某个业务逻辑在多线程里不正常了,没实现业务目标(业务目标包括逻辑是否对,资源占用是否在合理范围等),也是不安全的。再多说几句,在多线程环境里,一旦有数据共享,且访问操作没有同步,就是不安全的。,无脑给类中的某个成员变量加锁,是不能保证线程安全的。

2024-08-18 17:34:25 317

原创 无处不在的事件循环

其实我们能在很多软件库里发现这种模式,比如随便找一个多线程任务库或者无栈协程的运行时库,你都能找到一个类似这样的 loop,在这个 loop 里用各种策略调度它们抽象出来的。Event 携带的数据都用拷贝,不共享数据,也能保证线程安全。或者如果 Event 里的数据是共享的,那就要设计一种机制保证数据的生命周期和线程安全。吧),无论是客户端/服务端程序,游戏,还是操作系统,它们都跑着一个。有次和同事在食堂排队聊到一个有意思的话题,我说任何程序都跑着一个。又或者是一些客户端的 UI 框架,比如 Qt 里的。

2024-08-17 17:33:57 230

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除