volatile 关键字(C/Java)
在 C 和 Java 中,都有与并发编程相关的关键字 volatile,但在两种语言中的含义和用法略有不同。
在 C 中:
在 C 中,volatile 是一个关键字,用于告诉编译器该变量的值可能会在程序的控制之外被修改,因此编译器不应该对该变量的访问进行优化。
volatile 变量在多线程或中断处理 等情况下非常有用,因为它告诉编译器不要对该变量进行优化,以避免出现意外的行为。
当一个变量被声明为 volatile 时,每次对该变量的访问都会从内存中读取最新的值,而不是使用缓存的值。
在 Java 中:
在 Java 中,volatile 是一个关键字,用于声明变量的值可能会被多个线程同时修改,因此应该确保对该变量的访问是线程安全的。
使用 volatile 关键字修饰的变量会禁止线程将该变量缓存在线程的工作内存中,而是直接从主内存中读取和写入该变量的值。
在 Java 中,volatile 变量通常用于标记状态变量或标志,以确保多个线程之间对该变量的访问是可见的。
区别:
含义不同: 在 C 中,volatile 用于告诉编译器变量可能会在程序控制之外被修改;在 Jav ...
接入nvboard报错 ‘TTF_SetFontSize’ was not declared in this scope 解决& SDL2库编译安装
报错1234Error: ‘TTF_SetFontSize’ was not declared in this scope; did you mean ‘TTF_SetFontStyle’? 20 | TTF_SetFontSize (font, CH_HEIGHT); | ^~~~~~~~~~~~~~~ | TTF_SetFontStyle
解决方法:先sudo apt remove libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev 删掉通过apt或者 系统默认安装的这三个库然后在 github 上分别重新安装这三个库先安装 SDL2:Releases · libsdl-org/SDL (github.com)Ubuntu 是 linux 系统,我选的是这个版本:SDL2-2.30.1.tar.gz在 Ubuntu 内下好解压后 cd SDL2-2.30.1/ 进入目录然后输入:./configure --prefix=/usr 这样设置后会生成 Makefile, 并在待会 install 时 ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment