操作系统
文章平均质量分 67
进程线程
Puanui、cium
就一学生
展开
-
synchronized和volatile关键字
一、synchronized 1.起到的作用:保证 操作的原子性,禁止指令重排序,确保内存访问的可见性。 2.适用于多个线程的写操作,也用于一个线程写操作,一个线程读操作。 就相当于给操作多加了LOCK(加锁)和UNLOCK(解锁)两个指令。 通过LOCK和UNLOCK两个指令将其他一些指令打包成一个原子操作(中间不能被打断,也不能被其他线程穿插)。 3.用法一:修饰一个方法 synchronized public void increase(){//进入代码块就加锁 count++; }原创 2021-08-10 20:44:24 · 97 阅读 · 0 评论 -
线程安全问题 以及 线程不安全的原因
一、什么是线程安全问题? 答:在多线程的场景下,如果多个线程同时修改同一个变量;或者一个线程修改,一个线程读取,可能会出现 BUG 二、导致线程不安全的原因有哪些? 答: 1.线程是一个 抢占式 执行的过程(具有随机性)。(是操作系统内核来实现的,程序员无法控制) 2.由于多个线程修改同一个变量 3.修改操作不是 原子的(可能会有多条指令,在执行过程中相互穿插,也就无法保证线程的安全) 4.内存的可见性 : 比如: 连个线程同时操作一个内存,一个读内存,一个写内存;写操作的线程进行修改的时候,读线程可能原创 2021-08-10 19:07:40 · 2794 阅读 · 0 评论