计算机基础
you&ok
这个作者很懒,什么都没留下…
展开
-
代码会重排序 as-if-serial规则和happens-before规则
在执行程序时,为了提供性能,处理器和编译器常常会对指令进行重排序,但是不能随意重排序,不是你想怎么排序就怎么排序,它需要满足以下两个条件: 在单线程环境下不能改变程序运行的结果; 存在数据依赖关系的不允许重排序 需要注意的是:重排序不会影响单线程环境的执行结果,但是会破坏多线程的执行语义。 as-if-serial规则和happens-before规则的区别 as-if-serial语义保证单线程内程序的执行结果不被改变,happens-before关系保证正确同步的多线程程序的执行结原创 2020-09-10 14:49:26 · 307 阅读 · 0 评论 -
进程和线程、线程安全
进程和线程 一个程序就是一个进程,而一个程序中的多个任务则被称为线程。 进程是表示资源分配的基本单位,线程是进程中执行运算的最小单位,亦是调度运行的基本单位。 实现多线程编程的方式有两种,一种是继承 Thread 类,另一种是实现 Runnable 接口。使用继承 Thread 类创建线程,最大的局限就是不能多继承,所以为了支持多继承,完全可以实现 Runnable 接口的方式。需要说明的是,这两种方式在工作时的性质都是一样的,没有本质的区别。 虽然系统是把资源分给进程,但是CPU很特殊,是被分配到原创 2020-09-09 17:13:52 · 624 阅读 · 0 评论