本学期面向对象与Java程序设计课程已经全部结束了,但Java程序设计的学习还远未到终点,大家就本学期的课程作一个全面的总结吧。在此感谢各位助教的全力配合和辛勤劳动,辛苦了! 首先便是让人头疼的java的安装环境,毕竟是新接触一个事物,搞了半天才搞好。用了一学期的eclipse,现在已经离不开了。 ...
分类:
其他好文 时间:
2019-12-11 23:41:13
阅读次数:
178
synchronized和volatile volatile :保证内存可见性,但是不保证原子性; synchronized:同步锁,既能保证内存可见性,又能保证原子性; synchronized实现可重入锁 (1.持有同一锁自动获取 2.继承锁) 锁定的对象有两种:1.类的实例(对象锁) 2.类对 ...
分类:
其他好文 时间:
2019-12-09 21:42:17
阅读次数:
98
起因 在阅读百度的发号器 uid-generator 源码的过程中,发现了一段很奇怪的代码: 这里面有6个看上去毫无作用的volatile long变量(标红)。如果这是我自己写的代码,我肯定会认为是我自己手抖写多了。 但是作为百度的发号器,开源了这么久,如果是手抖早被fix了。肯定还是有深意的。于 ...
分类:
编程语言 时间:
2019-12-07 01:28:43
阅读次数:
128
JFrame jf = new JFrame("JFrame窗口");jf.setVisible();可见性jf.setBounds();大小位置jf.setBackground(Color.cyan);JLabel label = new JLabel("设置文字");jf.setDefaultC ...
1.同步:synchronized 同步的概念就是共享;如果不是共享的资源,就没有必要进行同步 2.异步:asynchronized 异步的概念就是独立,相互之间不受到任何限制.就好像我们学习http的时候,在页面发起Ajax请求,我们还可以继续浏览或操作页面的内容,二者之间没有任何关系. 3.同步 ...
分类:
其他好文 时间:
2019-12-03 18:16:17
阅读次数:
71
2019-12-2 1、Volatile关键字的粗浅理解在学习并发编程的时候了解到,volatile关键字有两个作用: 1. 并发环境可见性:volatile修饰后的变量能够保证该变量在线程间的可见性,线程进行数据的读写操作时将绕开工作内存(CPU缓存)而直接跟主内存进行数据交互,即线程进行读操作时 ...
分类:
其他好文 时间:
2019-12-02 23:55:12
阅读次数:
189
面向对象:类的成员 只是特定(类的)命名空间的全局变量(函数)而已 类变量: 生命周期:全生命周期; 作用域: 1)外部可见性:修饰符确定; 2)继承可见性:修饰符确定。 ...
分类:
其他好文 时间:
2019-12-02 18:57:14
阅读次数:
77
volatile主要用来使线程之间数据可见 不同线程操作同一个对象时,会先把对象复制一份给自己的运行内存然后操作完了再放回去。 如果两个线程一起操作对象,两者之间操作的对象其实不是同一个,而是各自拿到的主内存中的复制。 而volatile修饰的对象属性,会保证其可见性,使用这个属性时会同步到主内存, ...
分类:
编程语言 时间:
2019-11-28 13:11:46
阅读次数:
57
一、概念 是利用锁的机制来实现同步的。 锁机制有如下两种特性: 互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机制,这样在同一时间只有一个线程对需同步的代码块(复合操作)进行访问。互斥性我们也往往称为操作的原子性。 可见性:必须确保在锁被释放之前,对共享变量所做的 ...
分类:
其他好文 时间:
2019-11-28 01:24:31
阅读次数:
82
volatile使用场景:线程间共享变量需要使用 volatile 关键字标记,确保线程能够读取到更新后的最新变量值。 volatile关键字的目的是告诉虚拟机: 1.每次访问变量时,总是获取主内存的最新值。 2.每次修改变量后,立刻会写到主内存。 所以volatile解决的是可见性的问题: 1.当 ...
分类:
其他好文 时间:
2019-11-24 17:51:35
阅读次数:
61