关键字volatile可以用来修饰字段,告知程序任何修改都需要从共享内存中获取,而对它的改变需要同步刷新回内存,它可以保证所有线程对变量访问的可见性
关键字synchronized可以修饰方法或者以同步块的形式来进行使用,它主要确保多个线程在同一时刻,只能有一个线程处于方法或者同步块中,保证线程对变量访问的可见性和排它性
对象、对象的监视器、同步队列和执行线程之间的关系
等待方遵循的原则:
sychronized(对象) {
while(条件不满足){
对象.wait();
}
执行对应的逻辑
}
通知方遵循的原则
sychronized(对象) {
改变条件
对象.notifyAll();
}
等待通知的运行过程
管道输入\输出流和普通文件输入\输出流或者网络输入\输出流不同之处在于,它用于线程之间的数据传输,而传输的媒介为内存
管道输入\输出流有4种:面向 字节的:PipedOutputStream、PipedIntputStream;面向字符的:PipedReader、PipedWriter
如果一个线程执行了thread.join(),它的含义是:当前线程A等待线程thread终止后才thread.join()返回
ThreadLocal,即线程变量,是一个以ThreadLocal为对象为键、任意对象为值的存储结构,这个对象附带在线程上
欢迎关注公众号“程序员ZZ的源码”,一起来学习~~~
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/u012998254/article/details/113857065
内容来源于网络,如有侵权,请联系作者删除!