操作系统中的进程和线程

2018-05-21
阅读 2 分钟
2.7k
操作系统中的进程和线程 1.进程和线程的学习中容易混乱的地方 之所以觉得进程和线程难以理解,大概有这么几个原因: 进程,线程的概念是不断发展的,不同时期的书籍会有不同的阐述,如一开始内核不支持线程到后来内核开始支持线程 经典的书籍如《现代操作系统》多是从原理的角度去说,高屋建瓴,但是难以有切身感受 操作...

万能的synchronized

2018-05-12
阅读 1 分钟
2.1k
synchronized的万能(原子,可见,有序) 原子性 如果一个变量事先未被Lock锁定,那么不允许对其unlock操作,也不能unlock一个被其他线程锁定的变量。 synchronized隐式使用lock和unlock,保证了lock和unlock操作之间的代码是原子的。 可见性 1.synchronized的内存语义 八大happens-before规则中的两条: 对一个变量执行...

volatile,可见性,有序性

2018-05-12
阅读 2 分钟
3.1k
volatile读的内存语义:当读取一个volatile变量的时候,JMM首先将该线程工作内存中的这个变量设置为无效,迫使该线程重新从主内存获取最新的有效值。

Java内存模型

2018-05-11
阅读 4 分钟
2.2k
java的线程之间的通信是通过“共享内存”的方式进行隐式通信,即线程A把某状态写入主内存中的共享变量X,线程B读取X的值,这样就完成了通信。是一种隐式的通信方式。

学习Java多线程的一些总结

2018-05-11
阅读 3 分钟
1.9k
如何写出线程安全的程序,有各种各样需要遵循的规则,如果硬是去记忆这些写法或者规则,就事倍功半了,最好是先学习原理,抓住问题的主干,再拓展细节,这也是大家公认的学习某种技术的方式。对于多线程的问题,java使用java内存模型 JMM来保证多个线程可以有效地,正确地工作。